반응형
나의 논리
N이 입력되었을 때, 순열이 맞다면 1부터 N까지의 숫자가 한 번씩 다 있어야 한다는 점에 착안해서 테스트 케이스로 입력 받은 숫자들을 sorting 해주고 1부터 N까지의 숫자가 차례대로 있다면 "YES" 아니라면 "NO"를 출력하도록 했다.
# date: 2020/10/21
# author: psS2mj
# brief: SWEA_9940_순열1 (D3)
T = int(input())
for tc in range(1,T+1):
answer = "Yes"
N = int(input())
nums = list(map(int,input().split()))
nums.sort()
for i in range(1,N+1):
if i != nums[i-1]:
answer = "No"
break
print("#{} {}".format(tc,answer))
핵심은 테스트 케이스에서 주어지는 수열을 입력받은 후에 sorting 해주는 것.
그리고나서 nums 배열(입력받은 수열)의 첫 번째 원소부터 마지막 원소까지의 값을 비교하는데 그 값이 1부터 N까지 차례대로 되어 있지 않으면 -예를 들어, 중복된 숫자가 있거나 중간에 빠진 숫자가 있다거나- answer를 "NO"로 업데이트 한다.
이 과정에서 한 번도 걸리지 않았으면 answer는 그대로 "YES"일 것이다.
반응형
'🥇Problem Solving (psS2mj) > SWEA' 카테고리의 다른 글
[SWEA] 1486. 장훈이의 높은 선반 (Python3) (0) | 2020.10.25 |
---|---|
[SWEA] 1204. [S/W 문제해결 기본] 1일차 - 최빈수 구하기 (Python3) (0) | 2020.10.21 |
[SWEA] 1210. [S/W 문제해결 기본] 2일차 - Ladder1 (Java) (0) | 2020.05.10 |
[SWEA] 1208. [S/W 문제해결 기본] 1일차 - Flatten (Java) (0) | 2020.05.09 |
[SWEA] 1206. [S/W 문제해결 기본] 1일차 - View (Java) (0) | 2020.05.09 |
댓글