본문 바로가기
코딩 테스트/Python_백준

[백준/Python] 10813번 공 바꾸기 문제

by 모두의 케빈 2023. 3. 19.

■ 10813번 공 바꾸기 문제

출처: 백준 10813번 공 바꾸기 문제

 

■ 코드 풀이

 

아이디어는 다음과 같습니다.

1) basket이라는 list에 1부터 N까지의 숫자를 넣습니다.

2) 바꾸기를 위해 temp라는 변수를 선언합니다.

3) 반복 횟수 M번 동안 for loop를 돌면서 바꿀 바구니 i와 j를 입력 받습니다.

4) i번째 바구니의 값을 temp에 넣고, i번째 바구니에 j번째 바구니의 값을 넣습니다.

5) j번째 바구니에 temp 값을 넣습니다.

6) 최종 basket list의 값을 출력합니다.

N,M = map(int, input().split())

basket = [i for i in range(1,N+1)]
temp = 0

for i in range(M):
    i,j = map(int, input().split())
    temp = basket[i-1]
    basket[i-1] = basket[j-1]
    basket[j-1] = temp

for i in range(N):
    print(basket[i], end = ' ')

 

그런데 찾아보니 아래와 같은 풀이법도 있더군요.

temp라는 변수를 굳이 선언하지 않고도 두 값을 서로 바꿀 수 있습니다.

아마 이 점이 파이썬이라는 언어의 편리성이 아닌가 싶어요.

위의 제가 처음 작성한 코드는 파이썬보다는 C언어스러운 코드라고 할 수 있을 것 같습니다.

오늘도 또 한 가지를 배우네요! 

N,M = map(int, input().split())

basket = [i for i in range(1,N+1)]

for i in range(M):
    i,j = map(int, input().split())
    basket[i-1], basket[j-1] = basket[j-1], basket[i-1]

for i in range(N):
    print(basket[i], end = ' ')

댓글