Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- WEB2-JavaScript
- error: ENOENT: no such file or directory
- HTML
- 라매개발자
- li 태그
- 단계별로 풀어보기
- button:focus cursor: pointer; outline: none;
- 할만한데?
- 드림코딩
- 백준
- Pull
- 백준 정리
- margin 0 auto
- 노마드 코더
- max-width
- 생활코딩 WEB2-JavaScript
- 생활코딩
- 나도코딩
- 백준 자바스크립트
- git
- html 끝
- border radius
- 코딩테스트
- box-sizing: border-box
- git 버전관리
- :root
- 나도코딩 파이썬
- 크롬웹
- nav태그
- calc()
Archives
- Today
- Total
코딩응애의 개발블로그
백준 2447번 본문
일단 코드부터 봅시다
const fs = require('fs');
const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt';
let input = fs.readFileSync(__dirname + '/input.txt').toString().split('\n');
let num = +input[0];
let result = '';
function solution(i, j) {
// 일단 출력 예시를 보면
// (1,1) (1,4) (1,7) ... 이렇게가 공백인것을 볼 수 있는데 3으로 나눈 나머지가 1이면
// 그자리는 공백인것을 확인할 수 있다.이걸 토대로 i % 3 === 1 && j % 3 === 1 이렇게 조건을 세운다.
if (i % 3 === 1 && j % 3 === 1) {
result += ' ';
}
else { // 그리고 그외 나머지 부분은 다 *로 채워주어야 해서 이렇게 조건을 세워주고
if (Math.floor(i / 3) === 0 && Math.floor(j / 3) === 0) {
result += '*';
}
else { // (N/3)×(N/3) 정사각형 크기의 공백이 가운데에 존재해야 함으로
// 위에 조건에 맞지 않는것은 공백처리 해준다 만약 N이 9라면
// (3,3) ~ (3,5), (4,3) ~ (4,5), (5,3) ~ (5,5) 여기가 공백이 됨
solution(Math.floor(i / 3), Math.floor(j / 3));
}
}
}
for (let i = 0; i < num; i++) {
for (let j = 0; j < num; j++) {
solution(i, j); // 이중 for문을 이용해서 함수안에 인자들을 넣어줌
}
result+= "\n"; // 줄바꿈을 위해 for문 다 돌기전에 줄바꿈해줌 i가 0일때 다돌고 나서 다음으로 넘어가기 전에
}
console.log(result);
이 문제는 규칙을 찾는거 부터가 문제다. 문제를 처음 봤을때 이해하는거 부터 좀 시간이 걸렸다.
예제 출력을 보고 문제 이해를 겨우 해도 그다음 어떻게 구현을 해야 할지 막막하다.
그래서 구글링 해서 답을 봤는데 봐도 이해가 잘 안감 ㅋㅋ
출처 : https://nyang-in.tistory.com/211
'알고리즘 문제' 카테고리의 다른 글
백준 1074번 (1) | 2022.09.20 |
---|---|
백준 11729번 (0) | 2022.08.29 |
백준 17478번 (0) | 2022.08.26 |
백준 2941번 (for of 문) (0) | 2022.08.17 |
백준 4673번 풀면서 새롭게 알게된점 (0) | 2022.08.06 |
Comments