본문 바로가기

programming/algorithm

[algorithm] 백준 26069 - 붙임성 좋은 총총이

[algorithm] 백준 26069 - 붙임성 좋은 총총이

 

안녕하세요. 심심한 코딩쟁이입니다.

 

오늘은 백준 26069번 문제 - 붙임성 좋은 총총이 의 풀이를 살펴보도록 하겠습니다.

 

풀이에 사용한 언어는 Python3 입니다.

 

문제 해석과 풀이 다 함께 살펴보시죠.

 

algorithm
알고리즘


백준 BAEKJOON 26069

 

백준 26069번 붙임성 좋은 총총이 문제 보러가기

 

반응형

 

문제 해석

 

총총이는 무지개 댄스를 추고 있다. 상당히 귀엽다.

문제에는 무지개 댄스를 추고 있는 사람을 만나면 상대방도 무지개 댄스를 추게된다라는 조건이 등장한다.

즉, 처음에 총총이와 만난 사람을 파악해서 무지개 댄스를 추고있는 명단에 추가해 주고 이 명단에 올라가 있는

사람과 만나는 사람들을 파악해서 명단을 계속 업데이트해 주면 문제에서 원하는 무지개 댄스를 추는 사람의 수를

파악할 수 있다.

힌트 : 한 번 등장한 사람이 또 등장할 수 있으므로 중복 제거를 신경 써주면 좋겠다는 생각이 들었습니다.

 

풀이

 

# 26069 붙임성 좋은 총총이
import sys

N = int(sys.stdin.readline())

dance_set = set()

for _ in range(N):
    a, b = sys.stdin.readline().rstrip().split()
    
    if len(dance_set) == 0 and (a == "ChongChong" or b == "ChongChong"):
        dance_set.add(a)
        dance_set.add(b)
    elif a in dance_set:
        dance_set.add(b)
    elif b in dance_set:
        dance_set.add(a)

print(len(dance_set))

 

풀이 해석 및 팁

 

dance_set 이라는 집합을 만들어서 춤을 추고 있는 사람들의 명단으로 활용하겠습니다.

문제에서 주어지는 입력값은 서로 만난 사람들의 이름을 공백으로 구분한 문자열입니다.

여기서 이름 두 개를 구분해서 각각 a, b라는 변수에 저장해 둡니다.

명단에 아무도 기재되어있지 않을 경우에는 ChongChong 이란 이름이 등장하는 순간에

a와 b 이름 모두 명단에 기재합니다. 명단에 기재했다는 것은 dance_set에 요소로 추가하는 것을 의미합니다.

명단에 이름이 기재된 다음부터는

a 가 춤추는 명단에 있을 경우 b를 명단에 기재

b가 춤추는 명단에 있을 경우 a를 명단에 기재

이러한 과정을 거치도록 코드를 작성하였습니다.

모든 입력값의 처리가 끝나면 최종적으로 dance_set의 길이를 출력해서 문제를 해결합니다.

여기까지 백준 26069번 붙임성 좋은 총총이 문제 풀이였습니다.


이번 문제의 정답률은 68% 정도입니다.

 

리스트, 집합, 딕셔너리 등등 다양한 자료형을 사용해도 풀이가 가능합니다.

 

[ python 친해지기 #4 ] 파이썬 자료형 2탄 (리스트)

 

[ python 친해지기 #6 ] 파이썬 자료형 4탄 (딕셔너리)

 

[ python 친해지기 #7 ] 파이썬 자료형 5탄 (집합, 불)

 

제가 작성한 파이썬 자료형에 대한 설명글 링크입니다.

 

헷갈리는 부분이 있을 때 참고하시면 좋을 것 같네요.

 

감사합니다.

반응형