프로그래머스 풀이/level0

[Programmers] level 0) 문제 '문자열 밀기' 풀이

진기명기 2023. 4. 11. 07:06
🫠 Programmers (level 0) 
👉🏻 문제 56번 (문자열 밀기) : 문자열 맨 뒤의 문자를 맨 앞으로 밀어, 요청하는 B의 값과 같다면 1, 안되면 -1, 밀지 않아도 B가 나온다면 0 반환

 

 

 


function solution(A, B) {
  // A와 B의 값이 처음부터 같다면 0
  if(A === B) return 0

  // A를 배열로 생성
  let array1 = A.split('')

  // A를 한 바퀴 순회하여 B와 같은지 확인
  let i = 0
  let result = 0
  
  while(1) {
    if(i <= array1.length-1) { // A 길이만큼 한 바퀴 순회
      array1.unshift(array1.pop())
      if(array1.join('') === B) {
        result = i + 1
        break
      }
    }
    i++
    if(i == array1.length) { // A 길이만큼 순회했지만 B와 같지 않을 경우
      result = -1
      break
    }
  }
  
  return result
}

✅ 확인할 점 

💡 while문을 통해 돌려서 그런가.. 코드가 엄청 길어졌다.. 

 

💡 다른 사람의 풀이를 봤는데, 레전드다..(어이없어서 웃음만.. 나 뭐 한 거지..)

let solution=(a,b)=>(b+b).indexOf(a)

진짜 천재 너무 많다.. 😂 indexOf() 쓸 생각을 왜 못했냐고..!