프로그래머스 풀이/level0 55

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

🫠 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 (b+b).indexOf(a) 진짜 천재 너무 많다.. 😂 indexOf() 쓸 생각을 왜 못했냐고..!

[Programmers] level 0) 문제 '저주의 숫자 3' 풀이

🫠 Programmers (level 0) 👉🏻 문제 55번 (저주의 숫자 3) : 1 ~ 100까지 숫자 3이 들어가거나, 3의 배수가 들어가면 +1을 하여 다음 숫자로 대체하여 사용하는 문제 function solution(n) { // n만큼 배열을 생성하되, 3이 포함된 숫자와 3의 배수가 제외되기 때문에 길이를 몰라 *2 const maxNumber = n * 2 // n * 2만큼 배열 생성 (1 ~ n*2) let array = new Array(maxNumber).fill(1).map((item, index) => item + index) // 3의 배수가 아니고, 숫자 3을 포함하지 않은 배열 요소 구하기 let result = array.filter((item) => { return ..

[Programmers] level 0) 문제 '치킨 쿠폰' 풀이

🫠 Programmers (level 0) 👉🏻 문제 53번 (치킨 쿠폰) : 쿠폰 10장에 치킨 1마리 서비스! 먹을 수 있는 치킨의 총 개수 구하기 function solution(chicken) { // 치킨 합계 let sum = 0 // 치킨 += 몫 while(chicken >= 10){ sum += Math.floor(chicken / 10) chicken = Math.floor(chicken / 10) + (chicken % 10) } return sum } ✅ 확인할 점 💡 chicken 10개에 서비스 1마리이기 때문에, chicken을 10으로 나눈 몫을 sum에 더했다. (chicken이 10개 미만일 경우, 몫은 0이므로 계산에서 제외. 따라서 while문 종료) 💡 Math.f..

[Programmers] level 0) 문제 '직사각형 넓이 구하기' 풀이

🫠 Programmers (level 0) 👉🏻 문제 52번 (직사각형 넓이 구하기) : 이차원배열 x와 y의 길이 차이를 구해 직사각형의 넓이를 구해보자 function solution(dots) { let x1 = Math.max(...dots.map((item) => item[0])) let x2 = Math.min(...dots.map((item) => item[0])) let y1 = Math.max(...dots.map((item) => item[1])) let y2 = Math.min(...dots.map((item) => item[1])) return (x1 - x2) * (y1 - y2) } ✅ 코드 풀이 👉🏻 dots가 이차원배열로 들어오기 때문에 ([x]에서 가장 긴 값 - 가장 짧은..

[Programmers] level 0) 문제 '컨트롤 제트' 풀이

🫠 Programmers (level 0) 👉🏻 문제 50번 (컨트롤 제트) : 문자열에서 'Z' 이전 값을 제외한 합계 구하기 function solution(s) { // 배열로 만들기 (문자열 -> 숫자) let arr = s.split(' ').map((item) => { if(isNaN(Number(item))){ return item = 'Z' } else{ return Number(item) } }) // while문을 통해 'Z'일 때, (-) 해주기 let i = 0 let sum = 0 while(i < arr.length){ if(arr[i] == 'Z'){ sum -= arr[i-1] i++ } else { sum += arr[i] i++ } } return sum } ✅ 확인할 점..

[Programmers] level 0) 문제 '7의 개수' 풀이

🫠 Programmers (level 0) 👉🏻 문제 49번 (7의 개수) : 배열에서 7 개수 찾기 function solution(array) { // 문자열 > 숫자로 변형해서 숫자 하나씩 쪼개기 return array.join('').split('').filter((item) => item == 7).length } ✅ 확인할 점 💡 join() -> split()을 통해 문자열에서 숫자로 변경이 가능하며, 기준점 없이 사용할 경우, 한 글자마다 쪼개진다. 💡 join('').split('7')을 해줄 경우에는 배열 내에서 7은 ['']로 되며, 7을 제외한 나머지 숫자는 그대로 들어온다. 이 점 체크 ✅

[Programmers] level 0) 문제 'k의 개수' 풀이

🫠 Programmers (level 0) 👉🏻 문제 47번 (k의 개수) : i ~ j까지 k의 값 개수 구하기 function solution(i, j, k) { // i ~ j까지의 배열 만들고, join으로 문자열 -> split으로 배열 하나씩 만들기 let arr = new Array(j-i+1).fill(i).map((item,index) => item+index).join('').split('') // 배열에서 k값 개수 찾기 return arr.filter((item) => item == k).length } ✅ 확인할 점 💡 i ~ j까지 i부터 1씩 증가하는 배열을 만들어주고, join으로 모든 숫자를 합친 뒤, split으로 분리 💡 filter를 통해 해당 k값의 개수를 구함