백준 1193번 분수찾기

이상민·2023년 9월 4일
0

알고리즘

목록 보기
40/128
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;


public class Search_Fraction {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int X = Integer.parseInt(br.readLine());
        boolean up = true;
        int row = 1;
        int col = 1;
        for (int i = 2; i <= X; i++) {
            if(up){
                if(row==1) {
                    col++;
                    up = false;
                    continue;
                }
                row--;
                col++;
            }
            else if(!up){
                if(col==1){
                    row++;
                    up = true;
                    continue;
                }
                row++;
                col--;
            }
        }
        System.out.println(row+"/"+col);
    }
}

풀이방법

크게 올라가는 방향, 내려가는 방향을 기점으로 설계한다.
1. 올라가다가 맨위에 도착하게 되면, 옆으로 한칸 이동한뒤, 내려가는 방향으로 방향을 변경한다.
2. 내려가다가 맨 왼쪽에 도착하게 되면, 밑으로 한칸 이동한뒤 올라가는 방향으로 방향을 변경한다.

후기

처음에 칸에 해당하는 내용을 전부 2차원 배열에 추가하였었는데, 그러면 메모리 초과가 나온다.
따라서 해당 인덱스를 출력하는것으로 변경했다.

profile
개린이

0개의 댓글