반응형
문제
풀이
처음에 문제를 보았을 땐 지그재그 순서를 이해를 못했다
2/1 -> 3/1 으로 왜 이쪽으로 이동을 하지? 라는 생각에 시간을 많이 소비했다
대각선으로 ↙ (빨간선) 이동하는 것을 보면 1/2 -> 2/1, 1/4 -> 2/3 -> 3/2 -> 4/1
i / j 이면 i + 1 / j - 1로 값이 변경이 된다
대각선으로 ↗ (파란선) 이동하는 것을 보면 3/1 -> 2/2 -> 1/3, 5/1 -> 4/2 -> 3/3 -> 2/4 -> 1/5
i / j 이면 i - 1 / j + 1 로 값이 변경이 된다
→ 우측으로 이동하는 경우 (빨간선)는 ↗ 방향으로 이동이 안될 때
i / j 이면 i의 값이 0이 된다면 우측으로 이동하게 처리
↓ 아래로 이동하는 경우 (파란선)는 ↙ 방향으로 이동이 안될 때
i / j 이면 j의 값이 0이 된다면 아래로 이동하게 처리
코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int x = sc.nextInt();
int count = 1;
int i = 1;
int j = 1;
boolean downSearch = false;
boolean upSearch = false;
while (x != count) {
//System.out.printf("%d/%d : %d\n", i, j, count);
if (downSearch) {
if (j - 1 == 0) {
downSearch = false;
continue;
} else {
i += 1;
j -= 1;
count++;
continue;
}
}
if (upSearch) {
if (i - 1 == 0) {
upSearch = false;
continue;
} else {
i -= 1;
j += 1;
count++;
continue;
}
}
if (i == 1) {
j += 1;
count++;
downSearch = true;
continue;
} else if (j == 1) {
i += 1;
count++;
upSearch = true;
continue;
}
}
System.out.printf("%d/%d", i, j);
}
}
출처
반응형
'알고리즘 > 백준' 카테고리의 다른 글
백준 2775번 부녀회장이 될테야 자바 java (0) | 2021.04.07 |
---|---|
백준 1316번 그룹 단어 체커 자바 java (0) | 2021.04.06 |
백준 1546번 문제 c언어 (2) | 2021.03.31 |
백준 11653 문제 자바 java (0) | 2021.02.15 |
백준 10814 문제 자바 java (0) | 2021.01.12 |
댓글