본문 바로가기

백준 write-up/정렬 & 그리디

[백준] 카드 바꿔치기 : 18766번 - Python

728x90
반응형

https://www.acmicpc.net/problem/18766

 

18766번: 카드 바꿔치기

범고래와 돌고래는 카드놀이를 좋아한다. 각 카드는 빨강 (R), 노랑 (Y), 파랑 (B) 중 하나의 색으로 칠해져 있고 0-9 사이의 숫자가 적혀있다. 색과 숫자가 같은 카드가 여러 장 있을 수도 있다. 최

www.acmicpc.net

 

 

 

문제를 풀면서 몰랐던 개념

 

조건문에 바로 리스트를 정렬시켜서 사용할 수 있음

(ex)

if before == after or sorted(before) == sorted(after):
	print("NOT CHEATER")

 

 

 

문제의 접근 방법

 

정렬 후 비교 -> 카드가 배치된 순서가 달라도 카드 목록이 일치하기 때문!

 

 

 

문제 풀이 방법

 

테스트케이스 T 입력받기 -> 카드 개수 n 입력 받기 -> 카드 놀이 전 범고래가 기억하는 카드 n장은 before에 입력 받아서 리스트로 저장, 이후에 기억하는 카드 n장은 after에 입력 받아서 리스트로 저장 -> 만약 berfor,after가 같거나 정렬된 berfore,after 값이 같다면, 바꿔치기하지 않은 것이므로 "NOT CHEATER" 출력, 그게 아니라면 "CHEATER" 출력!

 

 

 

소스코드

T = int(input())

for _ in range(T):
    n = int(input())
    before = list(map(str,input().split()))
    after = list(map(str,input().split()))
    
    if before == after or sorted(before) == sorted(after):
        print("NOT CHEATER")
    else:
        print("CHEATER")
728x90
반응형