[BOJ/Python] B1 18766 카드 바꿔치기

jhy·2023년 1월 13일
0

BOJ

목록 보기
8/8
post-thumbnail

백준 B1 18766 카드 바꿔치기

📌문제

📌나의 코드

정답 1

import sys
input = sys.stdin.readline

T = int(input())

for _ in range(T):
    n = int(input())

    before = list(str(input().split()))
    after = list(str(input().split()))

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

정답 2

import sys
input = sys.stdin.readline

# 테스트 케이스
T = int(input())

# 테스트 케이스만큼 실행
for i in range(T):

    # 범고래가 기억하는 카드 갯수 n
    n = int(input().rstrip())
    # 놀이 전, 후의 범고래가 기억하는 n개의 카드 리스트
    before = sorted(list(input().rstrip().split()))
    after = sorted(list(input().rstrip().split()))

    # 전과 후가 일치하면 NOT CHEATER, 일치하지 않으면 CHEATER 출력
    if before == after:
        print("NOT CHEATER")
    else:
        print("CHEATER")

📌풀이

  • 우선 문제에서 주어진 대로 범고래가 기억하는 카드 갯수를 n으로 지정했다.
  • 놀이 전후의 카드들을 비교하기 위해서 어떻게 해야할까?
    • 우선 놀이 전과 후 카드들에 대해 각각의 리스트를 만들어야 했다.
    • 그 다음 sorted() 를 통해 정렬해야 일치여부를 정확하게 판단할 수 있을 거라 생각했다.
  • 정답 1의 경우
    • 두 리스트를 if문에서 정렬시켜 일치여부를 판단하게끔 했다.
  • 정답 2의 경우
    • 리스트 선언 시 바로 정렬 후 두 리스트의 요소를 비교했을 때,
      • 일치하면 "NOT CHEATER" 출력
      • 일치하지 않으면 "CHEATER" 출력
profile
서비스 기획자, PM 지망생

0개의 댓글