본문 바로가기

대회 문제

[BOJ] 제1회 천하제일 코딩대회 예선 풀이

728x90

A번 와이버스 부릉부릉

문제 링크: https://www.acmicpc.net/problem/14645

 

14645번: 와이버스 부릉부릉

첫 줄에 출발역과 종착역을 제외한 정거장의 수 N(1 ≤ N ≤ 100,000)과 출발역에서 탑승하는 사람의 수 K(1 ≤ K ≤ 10,000)가 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 줄마다 i번째 정거장에서 탑승

www.acmicpc.net


문제 풀이

구현

 

문제에 버스 운전수 '비와이' 씨라고 적혀있으므로 비와이를 출력하면 된다.

 

코드

 


B번 욱제는 결정장애야!!

문제 링크: https://www.acmicpc.net/problem/14646

 

14646번: 욱제는 결정장애야!!

욱제는 매일 세계사에 한 획을 그을만한 심각한 비결정론적 문제에 직면한다. 그렇다. 바로 저녁메뉴를 고르는 것이다. 매일 반복되는 중대한 선택에 지친 욱제는 N일 동안의 저녁메뉴를 미리

www.acmicpc.net


문제 풀이

시뮬레이션

 

리스트로 구현해서 False, True 값으로 바꿔주면서 돌림판이 돌아갈 때 마다 최대 True 값이 몇 개인지 확인하면 된다. 혹은 필자처럼 set 자료구조를 사용해서 풀이해도 괜찮다. 이때는 set의 원소 개수를 매번 확인하면서 마지막 출력해주면 된다.

 

코드

 


C번 준오는 조류혐오야!!

문제 링크: https://www.acmicpc.net/problem/14647

 

14647번: 준오는 조류혐오야!!

첫째 줄에 직사각형 빙고판의 크기를 뜻하는 n(1 ≤ n ≤ 500)과 m(1 ≤ m ≤ 500)이 주어진다. 다음 줄부터 n개의 줄에 걸쳐 각 줄마다 m개의 숫자들이 주어진다. 이는 크기가 n×m인 짝꿍의 빙고판의

www.acmicpc.net


문제 풀이

구현

 

일단 n×m 크기의 빙고판에 9가 몇 개인지 세고 모든 행, 모든 열을 하나하나 확인해서 9가 총 몇 개 들어가는지, 그 9가 최대 개수인지를 파악해서 처음에 구했던 9의 총 개수에서 빼주면 가장 적은 개수로 준오가 맞을 것이다. 

 

코드

 


D번 쿼리 맛보기

문제 링크: https://www.acmicpc.net/problem/14648

 

14648번: 쿼리 맛보기

첫째 줄에 수열의 길이를 뜻하는 n(1 ≤ n ≤ 1,000)과 쿼리의 개수를 뜻하는 q(1 ≤ q ≤ 10,000)가 주어진다. 둘째 줄에 길이 n의 수열이 하나의 공백을 사이에 두고 주어진다. 수열의 각 수는 -2,147,483,

www.acmicpc.net


문제 풀이

구현

 

제한이 크면 다른 알고리즘으로 구현해야 하지만 제한이 작아서 비효율적으로 구현이 가능하다. 파이썬의 슬라이싱으로 구현했다.

 

코드

 


E번 문홍안

문제 링크: https://www.acmicpc.net/problem/14649

 

14649번: 문홍안

대한 마을의 계곡에는 100개의 돌이 일렬로 놓인 징검다리가 있다. 원래 징검다리의 돌들은 평범한 돌이었지만 마을의 무속인 최손실 씨의 저주에 걸려 특별한 성질을 띠게 되었다. 그것은 바로

www.acmicpc.net


문제 풀이

시뮬레이션

 

난 귀찮아서 0부터 99까지로 배열을 구현했는데 1부터 100까지 구현하는 것도 괜찮다.

X L을 입력받을 경우(X는 정수 값) X부터 0까지 블럭을 변환해주고 X R을 입력받을 경우 X부터 99까지 블럭을 변환해준다. 이때 색은 순환되므로 나머지 연산자를 이용해서 0을 파랑, 1을 빨강, 2를 초록으로 해서 색을 구현했다. 이후 파랑, 빨강, 초록의 개수를 구해서 비율을 구하고 출력한다. 출력은 소숫점 둘째 자리까지 출력해야 한다.

 

코드

728x90