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 |
Tags
- react-native
- html
- custom printing
- github 100mb
- electron-packager
- ffi-napi
- nextjs
- animation
- github pdf
- vercel git lfs
- Recoil
- 이미지 데이터 타입
- Git
- Failed to compiled
- rolldown
- 티스토리 성능
- device in use
- adb connect
- adb pair
- react-native-dotenv
- npm package
- camera access
- github lfs
- augmentedDevice
- silent printing
- dvh
- Each child in a list should have a unique "key" prop.
- Can't resolve
- ELECTRON
- camera permission
Archives
- Today
- Total
Bleeding edge
[프로그래머스] 직사각형 별찍기 - 자바스크립트 0606 본문
문제 설명
이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다.
별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력해보세요.
제한 조건
- n과 m은 각각 1000 이하인 자연수입니다.
https://programmers.co.kr/learn/courses/30/lessons/12969
코딩테스트 연습 - 직사각형 별찍기
이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다. 별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력해보세요. 제한 조건 n과 m은 각각 1000 이하인 자연수
programmers.co.kr
초기에 프로그래머스에 주어진 식이랑 다르게 process.stdin이라고, 백준에서 문제를 풀이할 때 자주 보던 글자들이 있어서 처음에 당황했다.
process.stdin.setEncoding('utf8');
process.stdin.on('data', data => {
const n = data.split(" ");
const a = Number(n[0]), b = Number(n[1]);
console.log(a);
console.log(b);
});
process.stdin과 같이 function에 변수를 대입하는 식이 아닌 경우에는, console.log로 정답을 제출해야 했다.
우선 위에서 주어진 문제를 풀기 위해서는 a, b를 각각 new Array를 이용하여 값을 받아서 2차원으로 붙여주었다.
let answer = new Array(b).fill(new Array(a).fill("*"))
테스트케이스를 5 3으로 준다면
[
[ '*', '*', '*', '*', '*' ],
[ '*', '*', '*', '*', '*' ],
[ '*', '*', '*', '*', '*' ]
]
다음과 같은 값이 나온다. 이를 답과 같게 만들기 위해서는 join을 두번사용해야한다. 우선
let answer = new Array(b).fill(new Array(a).fill("*").join(""))
[ '*****', '*****', '*****' ]
이렇게 떨어져있는, *들을 한곳에 모아주었다. 그리고 마무리로 엔터를 하여 별을 배치시키기 위해 .join('\n')을 붙인다.
process.stdin.setEncoding('utf8');
process.stdin.on('data', data => {
const [a,b] = data.split(" ").map((v)=>Number(v));
let answer = new Array(b).fill(new Array(a).fill("*").join("")).join("\n")
console.log(answer)
});
문제 자체는, array와 map, join을 이용하여 심플하게 풀이를 하였지만, stdin의 사용법을 몰라서 10분정도를 추가로 더 소요하였다.
'코딩테스트 공부' 카테고리의 다른 글
[leetcode] 14. Longest Common Prefix - 자바스크립트 0607 (0) | 2022.06.07 |
---|---|
[프로그래머스] 멀쩡한 사각형 - 자바스크립트 0606 (0) | 2022.06.06 |
[프로그래머스] 2 x n 타일링 -자바스크립트 (0) | 2022.06.02 |
[프로그래머스] 가장 큰 정사각형 - 자바스크립트 (0) | 2022.05.30 |
[프로그래머스] N으로 표현 - 자바스크립트 (0) | 2022.05.20 |