BOJ - 28063

주의·2023년 11월 20일
0

boj

목록 보기
12/214

백준 문제 링크
동전 복사

❓접근법

그림에서 처럼, 기계가 정사각형 모양이므로
1. 꼭짓점의 좌표는 작동 횟수 2회
2. 꼭짓점과 꼭짓점 사이의 좌표는 작동 횟수 3회
3. 나머지 안쪽은 작동 횟수 4회
4. 그 대신 변의 길이가 3 이상일 때부터 적용됨

👌🏻코드

N = int(input())
x, y = map(int, input().split(" "))

if N == 1:
    print(0)
elif N == 2:
    print(2)
else:
    if (x == 1 and y == 1) or (x == 1 and y == N) or (x == N and y == 1) or (x == N and y == N):
        print(2)
    elif (x == 1 and y < N) or (x < N and y == N) or (x < N and y == 1) or (x == N and y < N):
        print(3)
    else:
        print(4)
N = int(input())
x,y = map(int, input().split(" "))
n = [[0 for _ in range(N)] for _ in range(N)]
n[N-y][x-1] = 1

ans = 0

if N == 1:
    print(0)
elif N == 2:
    print(2)
else:
    if n[0][0] == 1 or n[0][N-1] == 1 or n[N-1][0] == 1 or n[N-1][N-1] == 1:
        print(2)
    
    for i in range(1,N-1):
        if n[0][i] == 1 or n[i][0] == 1:
            print(3)
        
    for i in range(1,N-1):
        if n[i][N-1] == 1 or n[N-1][i] == 1:
            print(3)
            
    for i in range(1,N-1):
        for j in range(1,N-1):
            if n[i][j] == 1:
                print(4)
        
    

처음엔 2번째 코드로 제출을 했었는데, 통과는 됐지만 for문 때문에
메모리와 시간이 너무 커서 코드를 간단하게 수정했다.

0개의 댓글