[백준] 18868번 멀티버스Ⅰ

[백준] 18868번 멀티버스Ⅰ

출처: [백준] 18868번 멀티버스Ⅰ


시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
1 초 (추가 시간 없음) 512 MB 882 494 293 62.876%

문제

M개의 우주가 있고, 각 우주에는 1부터 N까지 번호가 매겨진 행성이 N개 있다. 행성의 크기를 알고 있을때, 균등한 우주의 쌍이 몇 개인지 구해보려고 한다. 구성이 같은데 순서만 다른 우주의 쌍은 한 번만 센다.

두 우주 A와 B가 있고, 우주 A에 있는 행성의 크기는 A1, A2, …, AN, 우주 B에 있는 행성의 크기는 B1, B2, …, BN라고 하자. 두 우주의 행성 크기가 모든 1 ≤ i, j ≤ N에 대해서 아래와 같은 조건을 만족한다면, 두 우주를 균등하다고 한다.

자세히 보기
[백준] 18870번 좌표 압축

[백준] 18870번 좌표 압축

출처: [백준] 18870번 좌표 압축


시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
2 초 512 MB 4416 2398 1774 55.042%

문제

수직선 위에 N개의 좌표 X1, X2, …, XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다.

Xi를 좌표 압축한 결과 X’i의 값은 Xi > Xj를 만족하는 서로 다른 좌표의 개수와 같아야 한다.

자세히 보기
[백준] 7576번 토마토

[백준] 7576번 토마토

출처: [백준] 7576번 토마토


시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
1 초 256 MB 84627 29824 18694 33.321%

문제

철수의 토마토 농장에서는 토마토를 보관하는 큰 창고를 가지고 있다. 토마토는 아래의 그림과 같이 격자 모양 상자의 칸에 하나씩 넣어서 창고에 보관한다.

img

자세히 보기
[백준] 2178번 미로 탐색
[백준] 2606번 바이러스

[백준] 2606번 바이러스

출처: [백준] 2606번 바이러스


문제

신종 바이러스인 웜 바이러스는 네트워크를 통해 전파된다. 한 컴퓨터가 웜 바이러스에 걸리면 그 컴퓨터와 네트워크 상에서 연결되어 있는 모든 컴퓨터는 웜 바이러스에 걸리게 된다.

예를 들어 7대의 컴퓨터가 <그림 1>과 같이 네트워크 상에서 연결되어 있다고 하자. 1번 컴퓨터가 웜 바이러스에 걸리면 웜 바이러스는 2번과 5번 컴퓨터를 거쳐 3번과 6번 컴퓨터까지 전파되어 2, 3, 5, 6 네 대의 컴퓨터는 웜 바이러스에 걸리게 된다. 하지만 4번과 7번 컴퓨터는 1번 컴퓨터와 네트워크상에서 연결되어 있지 않기 때문에 영향을 받지 않는다.

img

어느 날 1번 컴퓨터가 웜 바이러스에 걸렸다. 컴퓨터의 수와 네트워크 상에서 서로 연결되어 있는 정보가 주어질 때, 1번 컴퓨터를 통해 웜 바이러스에 걸리게 되는 컴퓨터의 수를 출력하는 프로그램을 작성하시오.

자세히 보기
[코드잇] 강남역 침수

[코드잇] 강남역 침수

출처: [코드잇] 강남역 침수

풀이


소스코드

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
def trapping_rain(buildings):
max_height = max(buildings)
start_point = False
current_height = 0
total = 0

for i in range(len(buildings) - 1): # 마지막은 스킵
if start_point == 0 and buildings[i] > 0:
start_point = 1
current_height = buildings[i]
else:
if buildings[i] == max_height:
continue

if buildings[i] < current_height:
total += current_height - buildings[i]
else:
current_height = buildings[i]

return total


# 테스트
print(trapping_rain([3, 0, 0, 2, 0, 4]))
print(trapping_rain([0, 1, 0, 2, 1, 0, 1, 3, 2, 1, 2, 1]))

자세히 보기
[백준] 3009번 네 번째 점
[백준] 4153번 직각삼각형
[백준] 9471번 피사노 주기

[백준] 9471번 피사노 주기

출처: [백준] 9471번 피사노 주기


시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
1 초 128 MB 853 602 504 75.224%

문제

1960년, IBM의 직원 Donald Wall은 피보나치 수열을 m으로 나눈 나머지가 주기를 이룬다는 것을 증명했다.

예를 들어, 피보나치 수열의 처음 10개를 11로 나눈 예는 다음과 같다.

자세히 보기
[백준] 1003번 피보나치 함수

[백준] 1003번 피보나치 함수

출처: [백준] 1003번 피보나치 함수


시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
0.25 초 (추가 시간 없음) 128 MB 115259 30059 23610 30.125%

문제

다음 소스는 N번째 피보나치 수를 구하는 C++ 함수이다.

1
int` `fibonacci(``int` `n) {``  ``if` `(n == 0) {``    ``printf``(``"0"``);``    ``return` `0;``  ``} ``else` `if` `(n == 1) {``    ``printf``(``"1"``);``    ``return` `1;``  ``} ``else` `{``    ``return` `fibonacci(n‐1) + fibonacci(n‐2);``  ``}``}
자세히 보기