백준 17944 - 퐁당퐁당 1 (파이썬)
글 작성자: pental
https://www.acmicpc.net/problem/17944
풀이
특정 규칙을 따라 숫자가 증가하고 감소하는 패턴을 이루는 수열에서 특정 위치의 값을 찾는 문제이다.
예를 들어, N = 3 일 때, 수열의 형태는 다음과 같다.
1, 2, 3, 4, 5, 6, 5, 4, 3, 2
이 패턴은 아래와 같이 형성
- 1부터 2N 까지 증가
- 2N-1 부터 2까지 감소
시간 복잡도 분석
- 리스트 A 의 길이는 4N - 2 이므로, 리스트 생성에 O(N) 의 시간이 소요
- 이후의 연산(인덱스 조회 및 나머지 연산)은 O(1) 이므로, 전체 시간 복잡도는 O(N)
- 하지만 T 의 크기가 클 경우에도 나머지 연산을 통해 효율적으로 값을 찾을 수 있어 T 가 커질 때도 성능이 저하되지 않는다.
코드
# 백준 17944 - 퐁당퐁당 1
# 분류 : 구현, 시뮬레이션
N, T = map(int, input().split())
A = []
for i in range(1, 2 * N + 1) :
A.append(i)
for i in range(2 * N - 1, 1, -1) :
A.append(i)
T -= 1
T %= (4 * N - 2)
print(A[T])
'Programming > 백준' 카테고리의 다른 글
백준 17951 - 흩날리는 시험지 속에서 내 평점이 느껴진거야 (파이썬) (0) | 2025.03.09 |
---|---|
백준 2503 - 숫자 야구 (파이썬) (1) | 2025.03.09 |
백준 17952 - 과제는 끝나지 않아! (파이썬) (0) | 2025.03.07 |
백준 19598 - 최소 회의실 개수 (파이썬) (0) | 2025.03.06 |
백준 1300 - K번째 수 (파이썬) (0) | 2025.03.06 |
댓글
이 글 공유하기
다른 글
-
백준 17951 - 흩날리는 시험지 속에서 내 평점이 느껴진거야 (파이썬)
백준 17951 - 흩날리는 시험지 속에서 내 평점이 느껴진거야 (파이썬)
2025.03.09 -
백준 2503 - 숫자 야구 (파이썬)
백준 2503 - 숫자 야구 (파이썬)
2025.03.09 -
백준 17952 - 과제는 끝나지 않아! (파이썬)
백준 17952 - 과제는 끝나지 않아! (파이썬)
2025.03.07 -
백준 19598 - 최소 회의실 개수 (파이썬)
백준 19598 - 최소 회의실 개수 (파이썬)
2025.03.06