티스토리 뷰

Problem Solving

BOJ 3665 : 최종 순위

onaeonae1 2020. 8. 26. 12:34

www.acmicpc.net/problem/3665

 

3665번: 최종 순위

문제 올해 ACM-ICPC 대전 인터넷 예선에는 총 n개의 팀이 참가했다. 팀은 1번부터 n번까지 번호가 매겨져 있다. 놀랍게도 올해 참가하는 팀은 작년에 참가했던 팀과 동일하다. 올해는 인터넷 예선 ��

www.acmicpc.net

문제를 제대로 해석하지 못해서 좀 고생했다.

문제의 조건을 풀어서 설명하면 다음과 같다.

  • 기존의 순서가 주어지고, 이후 상대적인 순서의 변경이 주어질 때, 변경된 순서대로 출력
  • 만약 불가능하다면, IMPOSSIBLE 출력

처음에 주어진 순서대로 연결해주고, 이후 변경된 순서를 적용시켜서 연결, 진입차수를 수정해주면 된다.

처음 연결에서 인접행렬을 짜듯이 하나하나 연결을 해줘야 하는게 중요하다.

예를 들자면 다음과 같다.

5 4 3 2 1 순으로 처음 순서가 주어질 때,

(5->4), (5->3), (5->2), (5->1), (4->3), (4->2), (4->1), (3->2), (3->1), (2->1)

이런 식으로 연결시켜줘야 한다.

상대적인 순위 변경은 이러한 연결들을 반대로 적용해주면 된다.

이후에는 위상정렬을 돌려서 깔끔하게 찾을 수 있다.

 

코드는 깃허브!

github.com/onaeonae1/ProblemSovling/blob/master/BOJ%203665.cpp

 

onaeonae1/ProblemSovling

Problem Solving(BOJ/AOJ/Programmers) with C++. Contribute to onaeonae1/ProblemSovling development by creating an account on GitHub.

github.com

*이 문제를 기점으로 solved.ac 기준 골드1을 달성했다

'Problem Solving' 카테고리의 다른 글

BOJ 12865: 평범한 배낭  (0) 2020.10.16
BOJ 17827 : 달팽이 리스트  (0) 2020.08.27
BOJ 1766 : 문제집  (0) 2020.08.24
BOJ 2623 : 음악 프로그램  (0) 2020.08.24
BOJ 17828 : 문자열 화폐  (0) 2020.08.24
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함