코딩 깔짝

[Python] 21.07.11 : BOJ 11652 외

ballena 2021. 7. 13. 18:59

BOJ 11652번(https://www.acmicpc.net/problem/11652)을 풀며.

.

.

.

파이썬 코드들을 찾아보면 언더스코어( _ )가 자주 보인다.

1. 인터프리터에서 사용될 때에는 '마지막으로 실행한 결과값'을 출력한다.

2. '값을 무시한다'의 의미로도 사용된다. 

3. 숫자값의 자릿수 구분 용도(Python 3.6)

이 외에도 다른 용도가 더 있는데, 이건 나중에 써야겠다.

.

.

.

이 문제에서는 Dictionary를 사용했다.

입력받은 숫자를 Key, 숫자의 갯수를 Value로 받았다.

숫자를 받았는데, 이미 있는 숫자(Key)다? Value 값을 +1 해준다. 없는 숫자다? Value가 1인 새로운 Key를 추가한다.

다 받은 후에 Dictionary를 리스트로 변환하면 2차원 리스트가 되는데, Value 기준으로 정렬하고 출력은 Key를 출력하면 된다.

.

.

.

순위가 높은 유저의 풀이법을 봤는데...놀라웠다.

이해하는데도 좀 시간이 필요할 듯 싶다.

import sys
k=sorted(list(map(int,sys.stdin.read().split()[1:])))
a,b,r,c=k[0],1,0,k[0]
for i in range(1,len(k)):
   if k[i]==a:b+=1
   else:
      if r<b:c=a;r=b;
      a=k[i];b=1
if r<b:c=a;r=b;
print(c)

.

.

.

이전 글에서 빠른출력 sys.stdout.write()를 언급했는데, 출력 양식에 대해 더 깊게 알아볼 필요가 있을 듯 하다.

print()처럼 자료형에 관계없이 찍 쓰는건 아닌 것 같다.