호다닥

프로그래머스 알고리즘 연습 Level1 수박수박수박 본문

기타

프로그래머스 알고리즘 연습 Level1 수박수박수박

3jun 2018. 6. 28. 16:38

문제

 

 

 

 

 

풀이

 

홀수자리에는 '수'가 나와야하고, 짝수자리에는 '박'이 나와야한다. 

i%2는 홀수일 때는 값이 1이기 때문에 true, 짝수일때는 값이 0 이기 때문에 false가 된다. 

따라서 true일때는 변수 answer에 '수'를 추가하고, false 일때는 '박'을 추가하도록 코드를 작성하면 된다. 

 

 

다른 사람의 풀이

 

result 변수에 '수박'을 반복한 문자열을 선언한 다음, substring method를 통해 간단히 해결한 방법이다. 

 

 

str.substring(indexStart, indexEnd);

 

indexStart는 출력되는 string에 포함될 첫번째 character의 index이다.

indexEnd는 출력되는 string에서 제외될 첫번째 character의 index이다. (생략가능하다.)

 

만약 indexEnd가 생략되면 substring은 마지막까지의 character들을 모두 출력한다.

만약 indexStart와 indexEnd의 값이 같으면 빈 string을 출력한다.

만약 indexStart가 indexEnd보다 크다면 두 argument의 위치가 바뀐것처럼 동작한다.

 

var anyString = 'Mozilla';  // Displays 'M' console.log(anyString.substring(0, 1)); console.log(anyString.substring(1, 0));  // Displays 'Mozill' console.log(anyString.substring(0, 6));  // Displays 'lla' console.log(anyString.substring(4)); console.log(anyString.substring(4, 7)); console.log(anyString.substring(7, 4));  // Displays 'Mozilla' console.log(anyString.substring(0, 7)); console.log(anyString.substring(0, 10));

 

 

다른사람풀이 2

 

i<=n, 즉 i가 argument n과 동일할 때까지 동작했던 풀이와 달리

i<n으로 i가 n보다 작을때 동작했던 풀이이다. 

 

i값을 0으로 시작하고, n보다 작은 수가지 반복하는 조건을 건 뒤에 result값이 0인지 아닌지 확인함으로써 101010...으로 처리했던 기존의 풀이와 반대로 010101..로 처리했다. 

Comments