티스토리 뷰
문제
: 도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 매겨져 있다. 바구니에는 공이 1개씩 들어있고, 처음에는 바구니에 적혀있는 번호와 같은 번호가 적힌 공이 들어있다.
도현이는 앞으로 M번 공을 바꾸려고 한다. 도현이는 공을 바꿀 바구니 2개를 선택하고, 두 바구니에 들어있는 공을 서로 교환한다.
공을 어떻게 바꿀지가 주어졌을 때, M번 공을 바꾼 이후에 각 바구니에 어떤 공이 들어있는지 구하는 프로그램을 작성하시오.
입출력 규칙
1. 입력첫째 줄에 N (1 ≤ N ≤ 100)과 M (1 ≤ M ≤ 100)이 주어진다.
둘째 줄부터 M개의 줄에 걸쳐서 공을 교환할 방법이 주어진다. 각 방법은 두 정수 i j로 이루어져 있으며, i번 바구니와 j번 바구니에 들어있는 공을 교환한다는 뜻이다. (1 ≤ i ≤ j ≤ N)
도현이는 입력으로 주어진 순서대로 공을 교환한다.
2. 출력
1번 바구니부터 N번 바구니에 들어있는 공의 번호를 공백으로 구분해 출력한다.
문제 풀이
<내 풀이1>
for 문을 사용하여, 하나하나 i번 바구니와 j번 바구니에 들어있는 것을 교환하였다.
N, M = map(int,input().split())
l = [i for i in range(N+1)] # 1번부터 N번까지의 공이 담긴 바구니
for _ in range(M):
i, j = map(int, input().split())
l[i], l[j] = l[j], l[i] # 리스트 인덱스는 0부터 시작이므로
print(*l[1:])
*l[1:]은 바구니 l이 0번부터 N번까지의 공이 담긴 거다.
그러나 우리는 0번의 공을 고려하지 않는다.
따라서, 0번 부분을 제외하기 위해 l[1:]이라고 작성한것이다.
그리고 리스트의 요소들을 추출하기 위해 unpacking을 하였다.
unpacking에 대해 더 공부하고 싶다면 [바로가기]
<숏코딩>
exec() 함수를 이용하여 내 풀이의 for 문 부분을 한줄로 정의하였다.exec()은 문자열 문을 입력받아 실행하는 함수이다. [더 공부하고 싶다면 바로가기]
N, M = map(int,input().split())
l = [*range(N+1)] # 1번부터 N번까지의 공이 담긴 바구니
exec('i, j = map(int, input().split());l[i], l[j] = l[j], l[i];'*M)
print(*l[1:])
+) 참고
range() 함수: 일정 범위의 연속된 정수를 생성하는 함수로, range 객체를 반환한다. [더 공부하고 싶다면 바로가기]
print(range(10)) # range(0, 10)
따라서, 결과를 바로 확인하고 싶다면, 리스트나 튜플로 변환해야한다.
print(list(range(10))) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
'코딩 > 백준' 카테고리의 다른 글
[백준/BOJ] 1546번: 평균 (Python 파이썬) (0) | 2024.05.23 |
---|---|
[백준/BOJ] 5597번: 과제 안 내신 분..? (Python 파이썬) (0) | 2024.05.22 |
[백준/BOJ] 10807번: 개수 세기 (Python 파이썬) (0) | 2024.05.22 |
[백준/BOJ] 10951번: A+B-4 (Python 파이썬) (0) | 2024.05.20 |
[백준/BOJ] 2438번: 별 찍기 - 1 (Python 파이썬) (0) | 2024.05.20 |
- Total
- Today
- Yesterday
- 경사하강법
- Sort
- *args
- sorted
- adrew ng 머신러닝 강의
- computation graph
- *
- 11870
- 비용함수
- **kwargs
- 강화학습
- 딥러닝
- 로지스틱 회귀
- omp: error #15
- 백준
- **
- 파이썬
- 손실함수
- baekjoon
- action value function
- state value function
- NumPy
- policy function
- 강의노트 정리
- Andrew Ng
- 앤드류응
- 숏코딩
- python
- numpy 배열 생성
- numpy 배열 속성
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |