[백준/Gold V] Z - 1074

2024. 10. 16. 16:48·코딩 테스트 정복기/백준
반응형

[Gold V] Z - 1074

문제 링크

성능 요약

메모리: 18868 KB, 시간: 188 ms

분류

분할 정복, 재귀

제출 일자

2024년 10월 16일 00:24:39

문제 설명

한수는 크기가 2N × 2N인 2차원 배열을 Z모양으로 탐색하려고 한다. 예를 들어, 2×2배열을 왼쪽 위칸, 오른쪽 위칸, 왼쪽 아래칸, 오른쪽 아래칸 순서대로 방문하면 Z모양이다.

N > 1인 경우, 배열을 크기가 2N-1 × 2N-1로 4등분 한 후에 재귀적으로 순서대로 방문한다.

다음 예는 22 × 22 크기의 배열을 방문한 순서이다.

N이 주어졌을 때, r행 c열을 몇 번째로 방문하는지 출력하는 프로그램을 작성하시오.

다음은 N=3일 때의 예이다.

입력

첫째 줄에 정수 N, r, c가 주어진다.

출력

r행 c열을 몇 번째로 방문했는지 출력한다.

제출 코드

// https://www.acmicpc.net/problem/1074
import java.io.*;
import java.util.*;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int[] nrc = Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).toArray();
        long n = (int)Math.pow(2, nrc[0]);
        int r = nrc[1], c = nrc[2];
        int temp;
        long answer = 0;
        while(true){
            if(r<n/2 && c<n/2) {
                temp = 0;
            }else if (r<n/2 && c<n) {
                temp = 1;
                c -= n/2;
            }else if (r<n && c<n/2) {
                temp = 2;
                r -= n/2;
            }else {
                temp = 3;
                r -= n/2;
                c -= n/2;
            }
            answer += (n*n/4) * temp;
            if(n == 2) break;
            n /= 2;
        }
        System.out.println(answer);
    }
}
728x90
반응형

'코딩 테스트 정복기 > 백준' 카테고리의 다른 글

[백준/Gold III] 나머지 합 - 10986  (1) 2024.10.19
[백준/Silver IV] ATM - 11399  (1) 2024.10.18
[백준/Silver I] 쉬운 최단거리 - 14940  (0) 2024.10.16
[백준/Silver II] 유기농 배추 - 1012  (0) 2024.10.16
[백준/Silver III] 1, 2, 3 더하기 - 9095  (0) 2024.10.16
'코딩 테스트 정복기/백준' 카테고리의 다른 글
  • [백준/Gold III] 나머지 합 - 10986
  • [백준/Silver IV] ATM - 11399
  • [백준/Silver I] 쉬운 최단거리 - 14940
  • [백준/Silver II] 유기농 배추 - 1012
settong
settong
    250x250
  • settong
    개 발 자 국
    settong
  • 전체
    오늘
    어제
    • 전체보기 (202)
      • Computer Science (50)
        • Network (7)
        • Operating System (18)
        • Data Structure (9)
        • Database (11)
        • Algorithm (5)
      • Language (17)
        • Java (17)
        • Javascript (0)
        • Python (0)
      • Devops (20)
        • AWS (0)
        • Naver Cloud (16)
        • CICD (3)
        • 웹 서버 관리 (1)
      • Front (0)
        • React (0)
      • Backend (5)
        • Spring (5)
      • 코딩 테스트 정복기 (110)
        • 백준 (51)
        • 프로그래머스 (53)
        • 기타 (6)
      • etc (0)
      • 경제 상식 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    프로그래머스
    백준
    ncp
    집합
    백트래킹
    Network
    ncp200
    lcs
    분할정복
    Spring Boot
    BFS
    DFS
    다익스트라
    벨만포드
    완전탐색
    github actions
    CI/CD
    ncp202
    해시
    다이나믹프로그래밍
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
settong
[백준/Gold V] Z - 1074
상단으로

티스토리툴바