일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 자바스크립트코테
- 파이썬무료강의
- 코딩테스트연습
- 코딩테스트
- 프로그래머스
- 파이썬
- 개발자
- 퍼블리셔
- 자바스크립트코딩테스트
- 스파르타코딩클럽
- 개발지식
- 티스토리챌린지
- 인프런
- 웹퍼블리셔
- 퍼블리싱
- CSS
- 원온원
- 오블완
- pythonquiz
- js
- 1on1미팅
- 지나코딩
- 1on1
- zinnadevdiary
- 힙한취미코딩
- js코딩테스트
- 자바스크립트
- Python
- javascript
- 자바스크립트공부
Archives
- Today
- Total
성장가능성 200% 프론트엔드의 Dev 다이어리
[코딩테스트/JS] 직사각형 별찍기 본문
문제 설명
이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다.
별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력해보세요.
제한 조건
- n과 m은 각각 1000 이하인 자연수입니다.
입출력 예
입력
5 | 3 |
출력
*****
*****
*****
초기 코드
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.setEncoding('utf8');
process.stdin.on('data', data => {
const n = data.split(" ");
const a = Number(n[0]), b = Number(n[1]);
console.log(a); //5
console.log(b); //3
for (var i = 1; i <= b; i++) {
var answer = '*'.repeat(a)
('\n' * (b-1)) + '*'.repeat(a);
}
console.log(answer);
});
이건 내가 결국 못 풀었던 문제ㅠ
줄바꿈을 대체 어떻게 해야하나 나름의 고민이 담겨서 일단 코드를 적어보았다.
일단 a만큼 '*'이 반복되고, b의 -1 만큼 줄바꿈(\n)이 실행돼야할 것 같았다.
그치만 장렬히 실패... 그러다가 깜빡 잠들고 못풀었다가 스터디 같이 하는 팀원들과 함께 보고 아하~ 싶었다.
팀원이 풀어본 코드
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); 5
//console.log(b); 3
let star = '*', c = '';
for (var i = 0; i < b; i++) {
c += star.repeat(a) + '\n';
}
console.log(c);
});
줄바꿈 부분에서 어떻게 할지 고민이 많았는데, 이런 식으로 반복문을 b 만큼 돌리는데,
*와 줄바꿈(\n)을 포함한 구문을 반복시키면 해결되는 부분이었다!
사이다 해결 방법
+
끈기가 조금 부족한가 싶기도 하지만, 그래도 한 걸음씩 어제보단 나아지고 있다는 사실이 중요한게 아닐까 위로해본다
반응형
'퍼블리싱 > Coding Test' 카테고리의 다른 글
[코딩테스트/JS] 짝수와 홀수 (0) | 2022.03.29 |
---|---|
[코딩테스트/JS] x만큼 간격이 있는 n개의 숫자 (0) | 2022.03.06 |
[코딩테스트/JS] 평균 구하기 (0) | 2022.03.06 |
[코딩테스트/JS] 핸드폰 번호 가리기 (0) | 2022.03.06 |
Comments