츄르사려고 코딩하는 코집사입니다.
1. [백준 알고리즘] 백준 18766번 카드 바꿔치기 파이썬(Python)
1) 문제번호 : 18766번
2) 문제 출처
https://www.acmicpc.net/problem/18766
2. 문제
범고래와 돌고래는 카드놀이를 좋아한다. 각 카드는 빨강 (R), 노랑 (Y), 파랑 (B) 중 하나의 색으로 칠해져 있고 0-9 사이의 숫자가 적혀있다. 색과 숫자가 같은 카드가 여러 장 있을 수도 있다.
최근 범고래는 모든 게임에서 졌고, 돌고래가 몰래 카드를 바꿔치기 한다는 의심을 하게 되었다.
범고래는 기억력이 매우 좋아서 카드놀이를 하기 전 n장의 카드와 카드놀이를 하면서 둘이 플레이 한 n장의 카드를 모두 기억하고 있다. 하지만 돌고래가 카드를 바꿔치기 했는지 아닌지 판단을 하는 능력은 부족하다.
예를 들어, 카드놀이를 하기 전에 n = 5장의 카드가 있었고, 이 카드는 아래와 같았다고 하자.
- R0
- B9
- R5
- Y3
- R2
카드놀이를 마치고 난 뒤 범고래가 기억하는 카드는 다음과 같다.
- R0
- B8
- R5
- Y3
- R2
이런 경우는 돌고래가 B9 카드 대신 B8 카드로 바꿔치기를 한 것이다.
돌고래가 카드 바꿔치기를 한 증거가 있는지 아닌지 판단하는 프로그램을 만들어보자.
3. 제약사항
4. 입력
첫 줄에 테스트 케이스의 수 T가 주어진다.
각 테스트 케이스는 다음과 같이 세 줄로 이루어져 있다.
첫째 줄에 카드의 개수 n이 주어진다.
둘째 줄에 카드놀이를 하기 전 범고래가 기억하는 n장의 카드를 나타내는 n개의 문자열이 공백으로 구분되어 주어지는데, 각 문자열은 두 글자이며 첫 글자는 R, Y, B 중 하나이고 두 번째 글자는 숫자 0-9중 하나이다.
셋째 줄에는 카드놀이가 끝난 후 범고래가 기억하는 n장의 카드가 주어진다. 입력 형식은 둘째 줄과 같다.
5. 출력
각각의 테스트 케이스마다 한 줄에 하나씩 돌고래가 카드를 바꿔치기 했으면 "CHEATER"를, 아니면 "NOT CHEATER"를 따옴표 없이 출력한다.
6. 풀이
- 리스트를 입력 받아, 오름차순으로 정렬 한 후에 비교하여 같으면 NOT CHEATER, 같으면 CHEATER를 출력하면 된다.
7. 소스 코드
import sys
input = sys.stdin.readline
T = int(input()) # 테스트 케이스 개수
for _ in range(T) :
N = int(input()) # 카드 개수
A1 = list(map(str, input().split()))
A2 = list(map(str, input().split()))
A1.sort()
A2.sort()
if A1 == A2 : print("NOT CHEATER")
else : print("CHEATER")
'알고리즘 > 백준 알고리즘' 카테고리의 다른 글
[백준 알고리즘] 백준 5523번 경기 결과 파이썬(Python) (0) | 2022.01.07 |
---|---|
[백준 알고리즘] 백준 4388번 받아올림 파이썬(Python) (0) | 2022.01.06 |
[백준 알고리즘] 백준 23825번 SASA 모형을 만들어보자 파이썬(Python) (0) | 2022.01.06 |
[백준 알고리즘] 백준 2721번 삼각수의 합 파이썬(Python) (0) | 2022.01.05 |
[백준 알고리즘] 백준 2738번 행렬 덧셈 파이썬(Python) (1) | 2022.01.04 |
[백준 알고리즘] 백준 3986번 좋은 단어 파이썬(Python) (0) | 2022.01.03 |
[백준 알고리즘] 백준 5988번 홀수일까 짝수일까 파이썬(Python) (0) | 2022.01.03 |
[백준 알고리즘] 백준 4458번 첫 글자를 대문자로 파이썬(Python) (0) | 2022.01.03 |
최근댓글