[백준|파이썬] 5766: 할아버지는 유명해! (실버4)

2023. 4. 14. 15:05·Problem Solving/백준
반응형
문제

https://www.acmicpc.net/problem/5766

 

5766번: 할아버지는 유명해!

각 테스트 케이스마다,  당신의 프로그램은 한 행에 2등인 선수(들)의 번호를 출력해야 합니다. 2등인 선수가 두 명 이상인 경우(동점자 발생), 각 선수 번호를 공백으로 구분하여 오름차순으로

www.acmicpc.net

 

 

🐍파이썬
import sys
while True:
    n, m = map(int, sys.stdin.readline().split())
    if n == 0 and m == 0:
        break
    player = {}	#(player번호:cnt갯수)로 이루어진 dic생성
    for _ in range(n):
        p = list(map(int, sys.stdin.readline().split()))
        for i in p:	
            if i in player:	#사전에 존재하는 선수 번호일 경우
                player[i] += 1	#카운트 +1
            else:	#사전에 존재하지 않는 선수일 경우
                player[i] = 1	#1로 초기화
    #선수의 정보를 담은 사전을 value기준으로 내림차순, value가 동일하다면 key기준으로 오름차순 정렬
    player = sorted(player.items(), key = lambda x:(-x[1], x[0]))
    #1등 선수(문제조건에 1명으로 고정돼있음) 제외한 2등 선수의 점수를 score에 저장
    score = player[1][1]
    #전체 리스트를 돌며 score와 동일한 값을 지닌 선수들을 출력
    for i in player:
        if i[1] == score:
            print(i[0], end=' ')
    #줄바꿈
    print()
더보기

n, m을 while문 밖에서 입력받아서 입력값에 오류가 났는데 이걸 눈치채는 데 1시간 넘게 걸렸다...😭

기본조건이 문제에 맞게 구현 잘 됐는지 꼭 확인하자.

 

 

다른 풀이 방법

import sys
input = sys.stdin.readline

while True:
    n, m = map(int, input().split())
    arr = [0] * 10005
    res = []
    if n == 0 and m == 0:
        break
	
    for _ in range(n):
        data = list(map(int, input().split()))
        #arr배열에서 data값에 해당하는 인덱스에 +1
        for num in data:	
            arr[num] += 1
	#arr에서 가장 큰 수
    first = max(arr)
	#선수번호 1~10001까지 반복
    for i in range(1, 10001):
        if arr[i] == first:	#first와 값이 같다면
            arr[i] = 0	#0으로 초기화
	#가장 큰 수를 0으로 초기화했으므로 두번째 값이 가장 큰 수가 되었음
    second = max(arr)
	#전체 선수 중 2등 점수를 가지고 있는 선수들을 res에 저장
    for i in range(1, 10001):
        if arr[i] == second:
            res.append(i)
	#res 값을 출력
    print(*res)

 

반응형

'Problem Solving > 백준' 카테고리의 다른 글

[백준|파이썬] 2891: 카약과 강풍 (실버5)  (0) 2023.04.21
[백준|파이썬] 2563: 색종이 (실버5)  (0) 2023.04.19
[백준|파이썬] 2775: 부녀회장이 될테야 (브론즈1)  (0) 2023.04.17
[백준|파이썬] 1388: 바닥 장식 (실버4)  (0) 2023.04.13
[백준|파이썬] 5014: 스타트링크 (실버1)  (0) 2023.04.12
[백준|파이썬] 1697: 숨바꼭질 (실버1)  (0) 2023.04.12
'Problem Solving/백준' 카테고리의 다른 글
  • [백준|파이썬] 2563: 색종이 (실버5)
  • [백준|파이썬] 2775: 부녀회장이 될테야 (브론즈1)
  • [백준|파이썬] 1388: 바닥 장식 (실버4)
  • [백준|파이썬] 5014: 스타트링크 (실버1)
청량리 물냉면
청량리 물냉면
프로그래밍 공부를 하고 있습니다. 공부 내용 정리 겸 정보 공유를 목적으로 합니다.
    반응형
  • 청량리 물냉면
    노력중인 블로그
    청량리 물냉면
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 프로그래밍
        • Programming
        • C | C++
        • Java
        • Python
      • 웹 프로그래밍
        • HTML | CSS
        • JavaScript | TypeScript
        • React
        • Vue.js
        • Next.js
        • Spring & Spring Boot
        • JSP & Servlet
        • DB
      • 웹 프로젝트
        • 웹 프로젝트
        • 🥨스낵몰
        • 👨‍👨‍👧‍👧소셜 가계부
        • 🌜꿈 일기장
        • 🔮포트폴리오 사이트
        • 🏃‍♂️팀 프로젝트: 일정관리 프로그램
        • 📈팀 프로젝트: AI기반 주식 분석 플랫폼
        • 😺Just Meow It: 고양이의 조언
      • 앱 프로그래밍
        • Flutter
        • Kotlin
      • Problem Solving
        • 백준
        • 프로그래머스
        • SWEA
      • Computer Science
        • 알고리즘
        • 컴퓨터 네트워크
        • 이산수학
      • Developer
        • 후기
        • 자료정리
        • 취업 | 취준
        • 웹개발 교육 프로그램
        • TIL
  • 블로그 메뉴

    • 홈
    • Github
  • 공지사항

    • 프로그래밍 공부 중😊
  • 인기 글

  • 태그

    알고리즘
    d3
    플러터
    React
    컴퓨터네트워크
    AWS
    타입스크립트
    프로그래머스
    포트폴리오
    리액트
    블로그 제작
    spring boot
    ZeroCho
    구현
    웹사이트
    클론 프로젝트
    bfs
    뉴렉처
    강의내용정리
    Jiraynor Programming
    파이썬
    백준
    자바
    자바스크립트
    SWEA
    공식문서
    mysql
    Til
    프로젝트
    Next.js
  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
청량리 물냉면
[백준|파이썬] 5766: 할아버지는 유명해! (실버4)
상단으로

티스토리툴바