/images/jg_02.jpg

SW Expert Academy_D3 11445, 11387, 11285, 11315

D3_11445_무한 사전

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
for T in range(int(input())): 
    P = input().rstrip()
    Q = input().rstrip()

    if P + "a" != Q:
        result = "Y"
    else:
        result = "N"

    print(f'#{T+1} {result}')
    
# 왜 D3 인가.

D3_11387_몬스터 사냥

1
2
3
4
5
6
7
8
for T in range(int(input())):
    D, L, N = map(int, input().split())
    
    result = 0
    for i in range(N):
        result += D * (1 + L*i/100)
    
    print(f'#{T+1} {int(result)}')

D3_11285_다트 게임

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
table = [20, 40, 60, 80, 100, 120, 140, 160, 180, 200]
value = [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]

for T in range(int(input())):
    result = 0
    for i in range(int(input())):
        x, y = map(int, input().split())
        dis = (x**2 + y**2)**0.5
        for i, v in zip(table, value):
            if dis <= i:
                result += v
                break

    print(f'#{T+1} {result}')

# (오답 : 10000개의 테스트케이스 중 4344개가 맞았습니다.)
# 제한시간 초과가 발생하였습니다.

## python으론 안되나......

Python_Library

Python Library 😀

  • Idea

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    
    # 모두 '거짓'이 들어있는 리스트는 '거짓'으로 볼 수 있지 않을까?
    # 라고 생각해봤다. 
    
    a = [False, False, False]
    
    if a == False:
        print("거짓")
    else:
        print("오류")
    
    # >>> 오류
    
    # 안된다. 생각을 말아라..ㅎㅎ
    

BEAKJOON 2630, 1992

2630_색종이 만들기

 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
31
32
33
34
import sys

def DFS(x, y, N):
    global W, B

    color = arr[x][y]
    for cx in range(x, x+N):
        for cy in range(y, y+N):
            if arr[cx][cy] != color:
                DFS(x, y, N//2)
                DFS(x, N//2+y, N//2)
                DFS(N//2+x, y, N//2)
                DFS(N//2+x, N//2+y, N//2)
                return		# 이걸 안해주면 쓸모 없는 DFS에 더 들어가게 된다.
                
    if color == 0:
        W += 1
        return
    else:
        B += 1
        return

N = int(sys.stdin.readline().rstrip())

arr = [list(map(int, sys.stdin.readline().split())) for _ in range(N)]

W, B = 0, 0 

DFS(0, 0, N)
print(W)
print(B)

# 분할한 구역에도 동일한 규칙을 적용할 수 있는 
# 알고리즘을 만드는 것이 기본 같다.