
프로그래머스 1일차이다. Lv.0부터 시작했다. 아직은 쉬운 단계라 매일 10개씩 풀어서 100문제를 10일 안에 푸는 것이 목표이다.
상세 풀이 과정에 대해
아직 Lv.0이다. 쉽기는 하지만 그렇다고 푸는 방식이 하나만 있는 것이 아니다. 나는 정말 고전적인 방법으로 풀었지만, 풀고 나서 꼭 다른 사람들이 푼 걸 본다. 그 중 전혀 생각하지 못한 방법의 내용을 기록하고자 한다.
각도기 문제
각도기 문제는 각도가 주어지면 예각일 경우 1, 직각일 경우 2, 둔각일 경우 3, 평각일 경우 4를 반환하는 문제였다.
나는 if문이나 switch문을 사용하는 방법을 생각했다. 그러나 다른 사람이 푼 풀이에는 전혀 새로운 방법이 있었다.
function solution(angle) {
return [0, 90, 91, 180].filter(x => angle>=x).length;
}
filter 메소드를 이용해서 배열의 값과 x를 비교해서 배열의 길이를 반환하는 풀이였다. 이런 풀이 과정을 보고 또 하나의 코딩 지식을 쌓을 수 있었다.
짝수의 합 문제
이 문제는 정수가 주어지면 정수 이하의 짝수들을 더하는 문제이다.
예시) 정수 n = 10일 경우, 2+4+6+8+10 = 30이다.
이 문제 같은 경우도 나는 for문과 if문을 사용했다. 다른 사람의 풀이는 또 달랐다.
function solution(n) {
var half = Math.floor(n/2);
return half*(half+1);
}
정수를 반으로 나눈 후, 나눈 값과 나눈 값에 1을 더한 값을 곱하면 되는 풀이었다. 이 문제를 수열로 접근해서 푼 문제라고 하는데 이렇게 푸는 것이 가능함으로써 좀 더 효율적으로 코드를 짤 수 있게 되지 않을까 생각한다.
1일차 정리하기
아직도 한참 부족한 점이 많고, 배워야 할 것이 산더미이다. 하지만 꾸준히 노력하면 불가능이란 없다. 다른 사람들의 코드들을 보고 생각의 방향을 넓이려는 노력을 해야할 것 같다.