

-Code
import java.io.*;
import java.util.*;
public class BOJ21869 {
public static void main(String[] args) throws Exception {
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
int size = Integer.parseInt(br.readLine());
if (size == 1) {
// 1일때는 1개만 존재
System.out.println(1);
System.out.println(1 + " " + 1);
} else {
// 1이 아닌 경우 2n - 2개 존재
StringBuilder answer = new StringBuilder();
// 첫번째 줄을 다 채웠을때 넣을수 있는 갯수는
// 마지막 줄 양끝을 제외하고 넣을 수 있음
answer.append(size * 2 - 2).append("\n");
for (int i = 1; i <= size; i++) {
answer.append(1 + " " + i).append("\n");
}
for (int i = 2; i < size; i++) {
answer.append(size + " " + i).append("\n");
}
System.out.println(answer);
}
}
}
처음에는 모든 경우의 수를 다 찾아봐야하나 했지만 틀린 접근이서 풀지 못했습니다.
그래서 힌트를 찾아보니 첫번째 줄을 비숍으로 채우고 나머지 비숍 넣을 수 있는 곳을 찾으라는 것을 보고 n + n - 2라는 공식이 size가 1보다 클 경우 적용이 되었습니다. 또한, 넣는 비숍의 위치가 마지막 줄의 양끝을 빼고 들어갈 수 있으므로 이를 이용해 해결했습니다.
'Beakjoon&프로그래머스 > Java' 카테고리의 다른 글
| [백준/Java] 3010번 페그 (0) | 2026.03.17 |
|---|---|
| [프로그래머스/Java] 신규 아이디 추천 (0) | 2026.03.17 |
| [백준/Java] 17095번 Min-Max Subsequence (0) | 2026.03.15 |
| [백준/Java] 6971번 Nasty Numbers (0) | 2026.03.15 |
| [프로그래머스/Java] 크레인 인형뽑기 게임 (0) | 2026.03.15 |