프로그래머스 알고리즘 문제. JavaScript
문제 1. 서울에서 김서방 찾기
function solution(seoul) {
for(var i = 0; i < seoul.length; i++) {
if(seoul[i] === "Kim") {
var answer = "김서방은 "+i+"에 있다";
return answer;
}
}
}
첫번째 코드는 그냥 머리에서 생각난대로 반복문을 사용해서 구현해보았다. indexOf의 존재를 모를 때라서 냅다 반복문 돌렸다.
function solution(seoul) {
var answer = "김서방은 " + seoul.indexOf("Kim") + "에 있다";
return answer;
}
두 번째 코드가 indexOf의 존재를 알고나서 구상해 본 코드이다. 첫 번째로 생각해본 코드보다 짧고 간결하다. 내장 함수의 존재를 어느정도 알고 있으면 같은 문제를 해결하는 코드라도 조금 더 간결하고 명확하게 구현할 수 있는 것 같다.
문제 2. 가운데 글자 가져오기
function solution(s) {
var answer;
var half = s.length/2;
if (s.length % 2) answer = s[Math.floor(half)];
else answer = s[half-1] + s[half];
return answer;
}
function solution(s) {
var half = s.length/2;
return s.length % 2 ? s[Math.floor(half)] : s[half-1] + s[half];
}
이 문제는 처음부터 두 가지 방법으로 구상을 했고 둘 다 구현을 해보았다. 상황에 맞게 삼항 연산자를 쓰니 코드가 간결하고 가독성이 높아진 것을 한 눈에 볼 수 있었다.
문제 3. 수박수박수박수박수...
function solution(n) {
var answer = '';
for(var i = 0; i <= (n-1); i++) {
if((i+1) % 2) answer = answer.concat('수');
else answer = answer.concat('박');
}
return answer;
}
처음에 코드를 구현할 때 var answer = '';
이 부분을 var answer;
이렇게만 선언을 했었다. 그런데 TypeError가 떴다. 자바스크립트는 변수를 선언할 때 자료형을 명시해주지 않다보니 생긴 문제 같았다. 그래서 answer의 자료형이 string 임을 명시하면서 비어있는 변수로 선언해주기 위해 var answer = '';
이렇게 선언해주었더니 해결되었다. 문제는 해결 되었으나 올바른 해결 방법이었는지는 모르겠다,, 올바른 방법으로 해결한 것이었으면 좋겠다ㅠㅠ
🎁 문제 출처
- https://programmers.co.kr/learn/courses/30/lessons/12919
- https://programmers.co.kr/learn/courses/30/lessons/12903
- https://programmers.co.kr/learn/courses/30/lessons/12922
Author And Source
이 문제에 관하여(프로그래머스 알고리즘 문제. JavaScript), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@0jiiino/프로그래머스-알고리즘-문제.-JavaScript저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)