본문 바로가기
알고리즘/백준 solved.ac PS

[백준][solved.ac][Bronze 2][Python] 11949번 : 번호표 교환

by 빛밤하늘 2021. 4. 11.
반응형

밑의 링크는 백준에서의 문제 링크입니다.

 

11949번: 번호표 교환

첫 번째 줄에 학생의 수와 카드의 수를 나타내는 정수 N, M (1 ≤ N ≤ 100, 1 ≤ M ≤ 100) 이 공백으로 구분되어 입력된다. 두 번째 줄부터 N줄에 걸쳐서 각 학생이 가지는 번호표의 값 Ai (1 ≤ Ai ≤

www.acmicpc.net

 

 

 

 

 

 

 

파이썬 코드와 결과입니다.

# 첫 번째 줄에는 학생의 수 N, 카드의 수 M을 공백으로 구분해 입력합니다.
# 1 <= N <= 100
# 1 <= M <= 100
N, M = map(int, input().split(' '))

# 학생들이 갖고 있는 번호표를 저장하는 리스트 변수를 선언합니다.
num_ticket = []

# 두 번째 줄부터 N줄에 걸쳐 각 학생이 가지는 번호표의 값 Ai를 입력합니다.
# 1 <= Ai <= 1000
for i in range(N):
    num_ticket.append(int(input()))

# 1부터 M번 카드까지 게임의 규칙을 반복합니다.
for i in range(1, M+1):
    # 카드를 뽑은 뒤에 게임의 규칙을 반복하기 위해 학생이 가진 번호표마다 반복해봅니다.
    for index in range(1, len(num_ticket)):
        # Aj % i의 값이 Aj+1 % i의 값보다 크면 
        if num_ticket[index-1] % i > num_ticket[index] % i:
            # 두 학생의 번호표를 서로 교환합니다.
            num_ticket[index-1], num_ticket[index] = num_ticket[index], num_ticket[index-1]

# 과정을 모두 마친 후 각 학생들이 가진 번호표를 순서대로 출력합니다.
for num in num_ticket:
    print(num)

결과

 

 

 

※ 궁금한 부분, 이상한 점 및 오타는 댓글에 부탁드립니다.

※ 더 효율적이고 빠른 정답을 환영합니다.

반응형

댓글