자바스크립트 코딩테스트
백준 2447번: 별 찍기 - 10
https://www.acmicpc.net/problem/2447
어떻게 풀어야 할지 고민이 많았다. Array 형태로 저장해서 풀 수 있었다.
const fs = require('fs')
const input = fs.readFileSync('dev/stdin').toString().trim().split('\n')
const [N] = input.map((x) => +x)
function recursiveStar(N) {
if (N === 3) {
return ['***', '* *', '***']
}
let starArray = []
for (let i = 0; i < 3; i++) {
for (let line of recursiveStar(N / 3)) {
if (i === 1) {
starArray.push(line + ' '.repeat(line.length) + line)
continue
}
starArray.push(line.repeat(3))
}
}
return starArray
}
console.log(recursiveStar(N).join('\n'))
아름답다.
18870번: 좌표 압축
https://www.acmicpc.net/problem/18870
const fs = require('fs')
const input = fs.readFileSync('dev/stdin').toString().trim().split('\n')
const notSorted = input[1].split(' ').map((x) => +x)
const sorted = Array.from(new Set(notSorted))
.sort((a, b) => a - b)
.reduce((dict, value, index) => {
dict[value] = index
return dict
}, {})
answer = []
for (const num of notSorted) {
answer.push(sorted[num])
}
console.log(answer.join(' '))
.findIndex() 보다 value값을 index로 저장한 object를 만드는 것이 더 빨랐다.
2448번: 별 찍기 - 11
https://www.acmicpc.net/problem/2448
const fs = require('fs')
const input = fs.readFileSync('dev/stdin').toString().trim().split('\n')
const N = +input[0]
function triangle(N) {
if (N === 3) {
return [' * ', ' * * ', '*****']
}
// 이전 단위 삼각형의 밑변 길이
const base = triangle(N / 2)[triangle(N / 2).length - 1].length
// 그리려는 삼각형의 밑변 길이
const currentBase = 2 * base + 1
const triangleArray = []
// 윗 부분 그리기
for (const line of triangle(N / 2)) {
triangleArray.push(
' '.repeat((currentBase - line.length) / 2) +
line +
' '.repeat((currentBase - line.length) / 2)
)
}
// 아랫 부분 그리기
for (const line of triangle(N / 2)) {
triangleArray.push(line + ' ' + line)
}
return triangleArray
}
console.log(triangle(N).join('\n'))
오늘은 별 찍기가 재밌다.
알고리즘 강의 수강 - 병합 정렬 (merge sort)
노마드 코더 - 줌 클론코딩 시작
'Development' 카테고리의 다른 글
[TIL] 백엔드 프론트엔드 협업, 큐 알고리즘, 스택 문제 (0) | 2022.02.11 |
---|---|
[TIL] 정렬 코딩테스트, 스택 알고리즘 강의, 노마드코더 줌 클론코딩 (0) | 2022.02.10 |
[TIL] 정렬 알고리즘, Hoisting, Object prototypes, 코딩테스트 (0) | 2022.02.08 |
[TIL] 코딩테스트 - 재귀함수, 이진탐색 (0) | 2022.02.07 |
[WIL] 이번 주에 한 것들 (0) | 2022.02.06 |