티스토리 뷰
반응형
const fs = require('fs');
// 1.
let [ first, ...rest] = fs.readFileSync('/dev/stdin').toString().trim().split('\n');
// 2.
rest.sort((a, b) => {
if(a.length > b.length) {
return 1;
} else if(a.length < b.length) {
return -1;
} else {
return 0;
}
});
// 3.
const set = new Set(rest);
const arr = [...set];
// 4.
let result = [];
for(let i=1;i<=50;i++) {
let sub = arr.filter( x => x.length === i ).sort();
result.push(...sub);
}
// 5.
result.forEach(elem => { console.log(elem) });
- 입력값을 rest 배열로 저장
- rest 배열을 문자열 길이 기준으로 정렬
- 중복 값 제거를 위해 Set으로 변경한 후, 다시 배열 형태인 arr로 변경
- Set을 그대로 둔 채 set.forEach((item) => { ... });를 활용할 수도 있겠지만, 이 방식이 더 보기 좋았음.
- 결과용 배열인 result를 생성 후 다음을 진행
- for 반복문을 통해 글자 수가 1개인 것부터 50개인 것까지 순차적으로 체크
- filter 메소드를 통해 arr의 요소 중 글자 수를 기준으로 걸러낸 새로운 배열을 만들어낸 후 문자열 기준 정렬(sort 메소드)
- 위 과정에서 반환된 배열을 result에 push
- console.log를 통해 배열의 모든 요소를 출력
결과
22372 KB / 1548 ms
메모
- 처음에는 arr 배열 안에서 글자 길이 별로 정렬하는 방법을 찾았으나 잘 되지 않았음.
- 그러나 문자열의 최대 길이가 주어져 있으므로, 이를 활용한 for 반복문을 통해 정렬이 가능하다는 피드백을 받아 반영하였음.
피드백
- 4.에서 필요 없는 분기를 돌지 않기 위한 break 삽입이 필요. 예를 들어, 가장 긴 문자열 길이를 우선 확인한 후 적용이 가능할 것!
'Dev. > coding test' 카테고리의 다른 글
[BaekJoon] 15829 Hashing (node.js) (0) | 2021.07.05 |
---|---|
[BaekJoon] 2869 달팽이는 올라가고 싶다 (node.js) (0) | 2021.07.05 |
[BaekJoon] 10815 숫자 카드 (node.js) (0) | 2021.06.30 |
[BaekJoon] 11399 ATM (node.js) (0) | 2021.06.30 |
[BaekJoon] 2309 일곱난쟁이 (node.js) (0) | 2021.06.22 |
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- javascript
- Gradle
- etc
- Java
- Puppeteer
- pgloader
- Git
- spring boot
- Linux
- terraform
- eureka
- hashicorp
- JEST
- IntelliJ
- Docker
- postgresql
- AWS IoT
- shell
- JPA
- mysql
- Spring Cloud Config
- jQuery
- Node.js
- kotlin
- react
- Database
- Vault
- AWS
- dev
- 코딩테스트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함