일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 입문
- Implemention
- 알고리즘
- Python
- Beakjoon
- 백준
- C 언어
- greedy
- 설명
- 그리디
- c언어
- implement
- 정리
- 문제풀이
- C
- 10807
- 꾸준히
- C Programming
- VS
- 구현
- 친절한 설명
- 파이썬
- 심화1
- Baekjoon
- 10926
- HTML
- 초보
- CSS
- 문자열
- 코드엔진
- Today
- Total
안경잡이 구루루
백준 10813 (공 바꾸기) [Python/파이썬] (난이도 ★★☆☆☆) 본문
백준 10813 (공 바꾸기) [Python/파이썬] (난이도 ★★☆☆☆)
구루루(gururu) 2023. 8. 21. 18:20https://www.acmicpc.net/problem/10813
나:
N, M = map(int, input().split())
baskets = list(range(1, N+1))
for change in range(M):
i, j = map(int, input().split())
baskets[i-1], baskets[j-1] = baskets[j-1], baskets[i-1]
for basket in baskets:
print(basket, end=' ')
완성된 코드는 위와 같다.
(1)
N, M = map(int, input().split())
baskets = list(range(1, N+1))
우선 문제에 있는대로 총 바구니 개수 N과 M번 바꿀 횟수를 공백을 기준으로 입력값을 받는다.
생성할 바구니 총 개수 baskets는 바구니 적힌 번호와 같은 1번부터 N번까지 번호로 이루어져 있어 range함수 사용. 즉 공의 번호가 바구니 번호와 같다. 대신 range() 끝의 값은 포함하지 않기 때문에 N+1을 했다.
(2)
for change in range(M):
i, j = map(int, input().split())
baskets[i-1], baskets[j-1] = baskets[j-1], baskets[i-1]
총 M번 바꿔주고 입력했을 때 바로바로 바꿔주기 위해 for 반복문을 이용.
앞에서 바구니를 만들 때 알수 있듯이 i, j 는 각각 교환할 바구니의 위치이면서 공의번호를 의미한다.
그래서 입력받는 코드 그 밑에 위치를 서로 바꿔주는 코드를 작성할 때 리스트의 위치는 0부터 시작하는 것을 고려해서 i-1 , j-1 로 위치 설정.
(3)
for basket in baskets:
print(basket, end=' ')
이후 출력값에 리스트 문양까지 출력되면 안되기 때문에 print와 end 를 이용해 하나씩 출력했다.
다른사람:
ex. https://brightnightsky77.tistory.com/77
N, M = map(int, input().split())
basket = [str(i+1) for i in range(N)]
for exchange in range(M):
i, j = map(int, input().split())
baskets[i-1], baskets[j-1] = baskets[j-1], baskets[i-1]
print(' '.join(basekt))
완성된 코드는 위와 같다.
나와 다르게 작성해서 주목해야 할 점은 총 두 부분으로 볼 수 있다.
(1)
basket = [str(i+1) for i in range(N)]
첫번째로 주목할 점은 바구니를 만드는 과정에서 한줄로 표현하는 for문을 사용했는 점이다.
참고로 한줄 for문 구조는 다음과 같다. one_line = 결과 for반복문 조건문
(2)
print(' '.join(basekt))
두번째로 주목할 점은 최종결과 값을 출력할때 for문 사용없이 join()함수 만으로 표현한 점이다.
join()함수는 '구분자',join(리스트) 구조로 리스트를 문자열로 일정 구분자로 합쳐주는 함수임을 알 수 있다.
'파이썬(Python) > 문제풀이(백준,BaekJoon)' 카테고리의 다른 글
백준 10810 (공 넣기) [Python/ 파이썬] (난이도 ★★☆☆☆) (0) | 2023.08.22 |
---|---|
백준 5597 (과제 안 내신 분..?) [Python/파이썬] (난이도 ★★☆☆☆) (0) | 2023.08.22 |
백준 25304 (영수증) [Python/파이썬] (난이도★★☆☆☆) (0) | 2023.08.20 |
백준 11382 (꼬마 정민) [Python/ 파이썬] (난이도★★☆☆☆) (0) | 2023.08.19 |
백준 18108 (1998년생인 내가 태국에서는 2541년생?!) [Python/ 파이썬] (난이도★☆☆☆☆) (0) | 2023.08.19 |