- 백준 14425번 풀이2023년 07월 31일
- Lv. 34 라이츄
- 작성자
- 2023.07.31.:49
문제
https://www.acmicpc.net/problem/14425
주어진 집합 안에 있는 단어가 아래 집합에서 몇 개나 포함되는지를 확인하시오
풀이
솔직히 김구라짤 넣고싶다... 보자마자 눈으로 욕했기때문...
사실 이 파트 들어갔으면 해시 테이블에 대해 서술을 해야 하는데 이거는 내가 이해를 못했음... 부스트코스 복기해야되나... OTL
아무튼 풀어봅시다. 이게 보자마자는 뭔 개소린가 싶을텐데 일단 예제를 보자.
5 11 baekjoononlinejudge startlink codeplus sundaycoding codingsh baekjoon codeplus codeminus startlink starlink sundaycoding codingsh codinghs sondaycoding startrink icerink
여기서 위에 5줄이 체크할 단어가 있는 집합이고, 아래 11개가 체크할 집합이다.
import sys M, N = map(int,sys.stdin.readline().split()) word_list = set() cnt = 0 for i in range(M): a = sys.stdin.readline().rstrip() word_list.add(a) for i in range(N): check = sys.stdin.readline().rstrip() if check in word_list: cnt += 1 print(cnt)
일단 이게 정답 맞다. 체크할 단어가 들어있는 set을 만든 다음, 체크할 단어를 입력받아서 세트에 있으면 하나씩 추가해서 세는 뭐 그런 식인데... 근데 처음에 리스트 써서 한 게 틀렸음... 근데 왜 틀린지 모르겠음... 리스트는 체크할 단어 리스트/찾을 리스트 나눠서 입력받고 다 했는데 틀려써...
그래서 질문 게시판을 찾다가 알게 된 건데, 아래 세트에는 중복되는 단어가 없다. 근데 위쪽 세트에는 중복되는 단어가 있을 수도 있다. 리스트는 중복 처리를 안하지만 세트는 중복 처리를 하기 때문에 만약 체크할 단어를 5개 받는데 그 중 하나가 중복이면 4개로 쳐버릴 수 있거든. 그것때문에 리스트는 틀렸나... 아무튼 그래요.
'BOJ > [BOJ] Python' 카테고리의 다른 글
백준 10816번 풀이 (0) 2023.08.10 백준 7785번 풀이 (0) 2023.08.04 백준 19532번 풀이 (0) 2023.07.20 백준 24313번 풀이 (0) 2023.07.17 백준 24267번 풀이 (0) 2023.07.15 다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)