프로그래머스 연습문제 풀이, 시작 1일차_posted by 22-07-17

Soye Park·2022년 11월 1일
0

깃헙블로그백업

목록 보기
4/10
post-thumbnail

본 포스팅은 깃헙 블로그 사용 당시 작성한 포스팅입니다.

프로그래머스 연습문제 풀이, 시작 1일차

연습문제 1

문제 설명
이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다.
별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형
형태를 출력해보세요.

제한 조건

  • n과 m은 각각 1000 이하인 자연수입니다.

내 풀이

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
process.stdin.setEncoding("utf8");
process.stdin.on("data", data => {
const n = data.split(" ");
const a = Number(n[0]),
b = Number(n[1]);
// 별을 그리기 위해 공백을 변수로 지정해주었다.
let star = "";
// 중첩반복문을 통해 작성했다. 내부의 반복문은 행을 형성하고 외부의 반복문은 열을 형성한다.
// 첫 열을 만드는 반복문이 실행되면 내부의 행을 만드는 반복문이 실행되면서 인풋값만큼 반복한다. 그렇게 반복을 하고 난 후 줄바꿈을 위해 \n 을 추가한다.
// 그러면 첫 열이 완성되고 입력값만큼 반복되며 그림을 그린다.
for (i = 0; i < b; i++) {
for (j = 0; j < a; j++) {
star += "*";
}
star += "\n";
}
console.log(star);
});

느낀 점

코딩을 공부하면서 서적 등을 사면 항상 봐왔던 문제다. 과거 나는 이 문제와 비슷한 것을 구현하지 못해 끙끙거렸던 기억이 있는데, 그 때는 구조적으로 파악을 전혀 하지 못했던 것 같다. (행과 열의 형성 원리라던가..) 아무튼 당시의 기억이 떠올랐던 문제이다.

이 문제를 풀면서 입력값을 제대로 파악하지 않아 VSCode에서는 잘 실행이 되나 프로그래머스 플랫폼에서는 계속 테스트 실패가 떠 당황스러웠는데, 이를 통해 입력값 파악 또한 중요하다는 것을 깨달았다.


연습문제 2

문제설명
함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요.

제한 조건

  • x는 -10000000 이상, 10000000 이하인 정수입니다.
  • n은 1000 이하인 자연수입니다.

내 풀이

1
2
3
4
5
6
7
8
9
function solution(x, n) {
var answer = [];
// 생성된 빈 배열에 반복물과 push메소드를 사용해 새로운 배열을 생성했다.
// 하단 반복문은 (i = 0; i <= n; i++) 라고 하는 것이 더 가독성이 좋은 코드였을 듯 하다.
for (i = 1; i < n + 1; i++) {
answer.push(x * i);
}
return answer;
}

느낀 점

해당 문제를 통해 그래도 JS메소드와 반복문을 활용해 (비록 연습문제이지만) 정말 쉬운 것들은 풀 수 있구나 싶어서 신기했다.

클린한 코드를 작성하기 위해 고민해봐야할 것 같다.

profile
응애FE개발자/ 블로그 이전 : https://soyeah-log.vercel.app/

0개의 댓글