728x90

20240412 백준 파이썬 공부
14425번 문자열 집합

1. 문제
총 N개의 문자열로 이루어진 집합 S가 주어진다.
입력으로 주어지는 M개의 문자열 중에서 집합 S에 포함되어 있는 것이 총 몇 개인지 구하는 프로그램을 작성하시오.

2. 입력
첫째 줄에 문자열의 개수 N과 M (1 ≤ N ≤ 10,000, 1 ≤ M ≤ 10,000)이 주어진다. 
다음 N개의 줄에는 집합 S에 포함되어 있는 문자열들이 주어진다.
다음 M개의 줄에는 검사해야 하는 문자열들이 주어진다.

입력으로 주어지는 문자열은 알파벳 소문자로만 이루어져 있으며, 길이는 500을 넘지 않는다. 
집합 S에 같은 문자열이 여러 번 주어지는 경우는 없다.

3. 출력
첫째 줄에 M개의 문자열 중에 총 몇 개가 집합 S에 포함되어 있는지 출력한다.

>>>코드

import sys
n, m = map(int, input().split())
word = set()
result = 0
for i in range(n):
    word.add(sys.stdin.readline().strip())
for i in range(m):
    w = sys.stdin.readline().strip()
    if w in word:
        result += 1
print(result)



>>>문제 링크
https://www.acmicpc.net/problem/14425

728x90
728x90

20240409 백준 파이썬 공부
26069번 붙임성 좋은 총총이

1. 문제
<무지개 댄스를 추는 총총과 그걸 보는 총총>

총총이는 친구 곰곰이의 소개로 제2회 곰곰컵에 출연할 기회를 얻었다!
총총이는 자신의 묘기인 무지개 댄스를 선보여, 여러분의 환심을 사려 한다. 
이 댄스는 중독성이 강하기 때문에, 한번 보게 된 사람은 모두 따라 하게 돼버린다.

<무지개 댄스를 추는 총총 2마리>

사람들이 만난 기록이 시간 순서대로 N개 주어진다. 
(총총이는 토끼이지만 이 문제에서는 편의상 사람이라고 가정한다.)

무지개 댄스를 추지 않고 있던 사람이 무지개 댄스를 추고 있던 사람을 만나게 된다면, 
만난 시점 이후로 무지개 댄스를 추게 된다.

기록이 시작되기 이전 무지개 댄스를 추고 있는 사람은 총총이 뿐이라고 할 때, 
마지막 기록 이후 무지개 댄스를 추는 사람이 몇 명인지 구해보자!

2. 입력
첫번째 줄에는 사람들이 만난 기록의 수 N (1 <= N <= 1000)이 주어진다.

두번째 줄부터 N개의 줄에 걸쳐 사람들이 만난 기록이 주어진다. 
i + 1번째 줄에는 i번째로 만난 사람들의 이름 A_i와 B_i가 공백을 사이에 두고 주어진다. 
A_i와 B_i는 숫자와 영문 대소문자로 이루어진 최대 길이 20의 문자열이며, 서로 같지 않다.
총총이의 이름은 ChongChong으로 주어지며, 기록에서 1회 이상 주어진다.
동명이인은 없으며, 사람의 이름은 대소문자를 구분한다. (ChongChong과 chongchong은 다른 이름이다.)

3. 출력
마지막 기록 이후 무지개 댄스를 추는 사람의 수를 출력하라.

>>>코드

import sys
rainbow = set(['ChongChong']) # 무지개 댄스를 추고있는 인원 목록 (총총이로 시작)
dance = 1 # 무지개 댄스를 추고있는 인원수 (총총이 1명으로 시작)
for _ in range(int(input())): # 처음에 입력한 수 만큼 반복
    a, b = sys.stdin.readline().strip().split() # 춤추는 인원 이름 입력받기
    # 만약 만난 둘 중 한명이 무지개 댄스를 추고 있는 경우 인원수 +1 및 인원 추가
    if a in rainbow and b not in rainbow:
        dance += 1
        rainbow.add(b)
    elif b in rainbow and a not in rainbow:
        dance += 1
        rainbow.add(a)
print(dance) # 인원수 출력



>>>문제링크
https://www.acmicpc.net/problem/26069

728x90
728x90

20240408 백준 파이썬 공부
25192번 인사성 밝은 곰곰이

1. 문제
<인사하는 곰곰이>

알고리즘 입문방 오픈 채팅방에서는 새로운 분들이 입장을 할 때마다 곰곰티콘을 사용해 인사를 한다. 
이를 본 문자열 킬러 임스는 채팅방의 기록을 수집해 그 중 곰곰티콘이 사용된 횟수를 구해 보기로 했다.

ENTER는 새로운 사람이 채팅방에 입장했음을 나타낸다. 
그 외는 채팅을 입력한 유저의 닉네임을 나타낸다. 닉네임은 숫자 또는 영문 대소문자로 구성되어 있다.

새로운 사람이 입장한 이후 처음 채팅을 입력하는 사람은 반드시 곰곰티콘으로 인사를 한다. 
그 외의 기록은 곰곰티콘을 쓰지 않은 평범한 채팅 기록이다.

채팅 기록 중 곰곰티콘이 사용된 횟수를 구해보자!

2. 입력
첫 번째 줄에는 채팅방의 기록 수를 나타내는 정수 N 이 주어진다. 
(1 <= N <= 100,000)

두 번째 줄부터 N 개의 줄에 걸쳐 새로운 사람의 입장을 나타내는 ENTER, 
혹은 채팅을 입력한 유저의 닉네임이 문자열로 주어진다. 
(1 <= 문자열 길이 <= 20)

첫 번째 주어지는 문자열은 무조건 ENTER이다.

3. 출력
채팅 기록 중 곰곰티콘이 사용된 횟수를 출력하시오.

>>>코드

import sys
gom = 0 # 곰곰티콘을 사용한 횟수
for i in range(int(input())): # 처음에 입력한 숫자만큼 반복
    ID = sys.stdin.readline().strip() # ID 입력받기
    if ID == "ENTER": # ENTER가 입력되면 그동안 입력된 ID기록 초기화
        chat = set()
    elif ID not in chat: # ID기록이 안남아 있다면(첫 채팅이라면) 곰곰티콘 횟수 +1
        chat.add(ID)
        gom += 1
print(gom) # 출력



>>>문제링크
https://www.acmicpc.net/problem/25192

728x90

+ Recent posts