[백준2262] 토너먼트 만들기

2021. 5. 3. 19:31·알고리즘 문제풀이

www.acmicpc.net/problem/2262

 

2262번: 토너먼트 만들기

월드시에서는 매년 n명의 사람들이 모여 월드 크래프트라는 게임의 토너먼트 대회를 치른다. 이 게임은 특성상 실력만이 승패를 좌우하기 때문에, 아무리 실력이 엇비슷한 사람이 시합을 치러

www.acmicpc.net

 

풀이

 

처음에는 DP인가 생각했다. 결국 못풀어 답을 참고하니 간단한 그리디 문제였다.

 

붙는 선수끼리의 랭킹차이가 적어야 한다.

이기는 선수(여러번 붙는 선수)는 랭킹이 높은 선수이다.

따라서 낮은 랭킹이 올라가서 여러번 붙으면 안된다. 올라가는 선수들은 랭킹이 높은 선수들이기 때문에 차이값이 많아진다.

즉 랭킹이 낮은 선수부터 시합을 뛰게해 제거한다.

 

랭킹이 제일 낮은 선수를 찾고 양 옆의 선수중 차이가 적은 선수랑 붙는다.

그리고 랭킹이 낮은 선수를 제거한다.

1명이 남을 때까지 반복한다.

 

시간복잡도

반복문이 n의 크기만큼 돈다. 한번 반복문에서 max, min, index, del 함수를 사용한다. 모두 시간복잡도가 O(n)이다.

즉 총 시간복잡도는 O(n^2)이다.

코드

n = int(input())
ranks = list(map(int,input().split()))
answer = 0
while len(ranks) !=1:
    rank = max(ranks)
    idx = ranks.index(rank)
    diff = 0

    if idx == 0:
        diff = rank - ranks[1]
    elif idx == len(ranks)-1:
        diff = rank - ranks[idx-1]
    else:
        diff = min(rank - ranks[idx-1],rank - ranks[idx+1])
    answer+=diff
    del ranks[idx]

print(answer)

 

'알고리즘 문제풀이' 카테고리의 다른 글

[프로그래머스lv3] [2020 카카오 인턴십] 보석 쇼핑  (0) 2021.05.04
[프로그래머스lv.3] 순위  (0) 2021.05.04
[프로그래머스.lv3] 입국심사  (0) 2021.05.03
[백준1958] LCS 3  (0) 2021.05.03
[백준1114] 통나무 자르기  (0) 2021.05.03
'알고리즘 문제풀이' 카테고리의 다른 글
  • [프로그래머스lv.3] 순위
  • [프로그래머스.lv3] 입국심사
  • [백준1958] LCS 3
  • [백준1114] 통나무 자르기
WildDevmon
WildDevmon
『앗! 야생의 개발몬(이)가 나타났다!』
  • WildDevmon
    야생의 개발몬
    WildDevmon
  • 전체
    오늘
    어제
    • 분류 전체보기 (35)
      • Server (5)
      • 알고리즘 문제풀이 (27)
      • 회고 (3)
  • 블로그 메뉴

    • 홈
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    2020 카카오 인턴
    백준 1114
    백준1188
    자바 스레드 상태
    백준6980
    자바 최소공배수
    preStop
    다이렉트 버퍼
    자바 최대공약수
    소수&팰린드롬
    백준 10610
    백준 고층 건물
    ai개발자
    1114백준
    백준 파티
    네이티브 메모리
    백준 1034
    백준 어린 왕자
    백준 1027
    백준 18405
    백준1747
    백준 경쟁적 전염
    경력 서류
    백준2262
    백준 인형들
    백준 1114 파이썬
    백준1238
    백준 1004
    백준 램프
    자바 프로세스 종료
    자바 물리 메모리
    합승 택시 요금
    카카오 필요스펙
    백준 5347
    선발 명단
    컴공 취준
    graceful shutdown
    백준15954
    백준 30
    코틀린 코루틴
    커널 스레드 상태
    백준14465
    통나무 자르기
    파이썬
    direct buffer
    소가 길을 건너간 이유 5
    백준 17281
    네카라쿠배 취업
    terminationGracePeriodSeconds
    우아한 종료
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
WildDevmon
[백준2262] 토너먼트 만들기
상단으로

티스토리툴바