solved.ac 기준 실버 1

 

1074번: Z

한수는 2차원 배열 (항상 2^N * 2^N 크기이다)을 Z모양으로 탐색하려고 한다. 예를 들어, 2*2배열을 왼쪽 위칸, 오른쪽 위칸, 왼쪽 아래칸, 오른쪽 아래칸 순서대로 방문하면 Z모양이다. 만약, 2차원 ��

www.acmicpc.net

<테스트 환경>

    C++

     - OS: Windows 10

     - IDE: JetBrains CLion

     - 컴파일러: MinGW GCC C++ compiler

    Python

     - OS: Windows 10

     - IDE: JetBrains PyCharm

     - 인터프리터: Python 3.8

 

답안 (C++ 14)

- 메모리: 1984 KB

- 시간: 0 ms

- boj.kr/c492da1533334445a952cf595eaed39c

#include <iostream>

int zeta_search(int n, int r, int c) {
    if (n == 1) {
        return r * 2 + c;
    } else if (n > 1) {
        return 4 * zeta_search(n - 1, r / 2, c / 2) + zeta_search(1, r % 2, c % 2);
    } else {
        return -1;
    }
}

int main() {
    int n, r, c;

    std::cin.tie(nullptr);
    std::ios::sync_with_stdio(false);

    std::cin >> n >> r >> c;
    std::cout << zeta_search(n, r, c) << '\n';

    return 0;
}

 

답안 (Python 3)

- 메모리: 29380 KB

- 시간: 60 ms

- boj.kr/c92231d4fe4f4ef0913c0d3fb661064c 

import sys


def zeta_search(n, r, c):
    if n == 1:
        return r * 2 + c
    elif n > 1:
        return 4 * zeta_search(n - 1, int(r / 2), int(c / 2)) + zeta_search(1, r % 2, c % 2)
    else:
        return -1


s = sys.stdin.readline()
n, r, c = map(int, s.split())

result = int(zeta_search(n, r, c))
print(result)

'기초쌓기 > PS' 카테고리의 다른 글

백준 10845번: 큐  (0) 2020.05.27
백준 10828번: 스택  (0) 2020.05.26
백준 1913번: 달팽이  (0) 2020.05.25
백준 1316번: 그룹 단어 체커  (0) 2020.05.25
백준 2750번: 수 정렬하기  (0) 2020.05.25

+ Recent posts