본문 바로가기
개발/알고리즘 풀기

TIL 230408 알고리즘 풀기 수박수박

by 코딩하는짱구 2023. 4. 8.
반응형

TIL 230408 알고리즘 풀기 수박수박

1. 

길이가 n이고, "수박수박수박수...."와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 "수박수박"을 리턴하고 3이라면 "수박수"를 리턴하면 됩니다.

 

 

아래 코드에서의 오류: 결과 값이 박 밖에 안나옴. 이유: result 값에 할당을 잘못 함, 그 이유는 바로 i%2<<부분에 자꾸 n값을 넣어서였다. 예를 들어 n값이 1이라고 치면, 1을 넣었을 때의 나머지 값은 1이고, 그럴려면 else 뒤에 result에 "수" 가 들어가는게 맞다고 착각했기 때문이다. 

 

 

var n1 = 1; //수
var n2 = 2; //수박

function solution(n) {
  var result = "";
  for (let i = 0; i < n; i++) {
    if (i % 2 == 0) {
      result += "박";
    } else {
      result += "수";
    }
    return result;
  }
 
}

console.log(solution(n2));

 

해결 방법: if문에 들어가는 i는 인덱스의 값을 파악하여 "수", "박"을 바꿔서 할당해줌. 즉 내가 새로 만들어준 배열의 값이지 n과는 전혀 무관하다!

 

var n1 = 10; //수박수박
var n2 = 3; //수박
var n3 = 1;

function solution(n) {
  var result = "";
  for (let i = 0; i < n; i++) {
    if (i % 2 == 0) {
      result += "수";
    } else {
      result += "박";
    }
  }
  return result;
}

console.log(solution(n1));

 

 

**이와 같은 반복문에서 기억해야할 점

for문에서 이전에 처리된 for문의 결과값에 그 다음 결과값이 계속 표기되려면 반드시 result에 +=를 표기해줄 것. 

return result가 어디에 들어가야하는지 파악할 것. 

반응형