JavaScript 105

프로그래머스 숫자찾기 JS ( indexOf() / || 연산자 )

문제 설명 정수 num과 k가 매개변수로 주어질 때, num을 이루는 숫자 중에 k가 있으면 num의 그 숫자가 있는 자리 수를 return하고 없으면 -1을 return 하도록 solution 함수를 완성해보세요. 🙋‍♀️ 내 생각 num에 k를 포함하고 있으면 그 인덱스를 반환해야하기때문에 indexOf()를 사용했다. 만약 k가 여러개있으면 맨 첫번째값을 반환한다는 조건이 있다. indexOf()는 맨 처음의 인덱스값만을 찾는 특성이 있기때문에 이 문제를 푸는데 적합한 메서드라고 생각했다. ✅ 내 코드 function solution(num, k) { if(num.toString().indexOf(k)>-1){ return num.toString().indexOf(k)+1 } else { retur..

프로그래머스 배열 조각하기 JS ( ⭐️ map과 forEach의 차이점 - react에서의 사용을 중심으로 )

문제 설명 정수 배열 arr와 query가 주어집니다. query를 순회하면서 다음 작업을 반복합니다. 짝수 인덱스에서는 arr에서 query[i]번 인덱스를 제외하고 배열의 query[i]번 인덱스 뒷부분을 잘라서 버립니다. 홀수 인덱스에서는 arr에서 query[i]번 인덱스는 제외하고 배열의 query[i]번 인덱스 앞부분을 잘라서 버립니다. 위 작업을 마친 후 남은 arr의 부분 배열을 return 하는 solution 함수를 완성해 주세요. 🙋‍♀️ 내 생각 query를 순회하면서 작업을 반복하는데 짝수/홀수일 경우가 나눠진다. 순회를 위해서 forEach를 사용하였고, 홀짝의 분기처리를 위해서 if문을 사용했다. 각각의 인덱스에 맞게 값을 잘라내기 위해서 splice()를 해주었다. 문제를 풀..

프로그래머스 주사위의 개수 JS

문제 설명 머쓱이는 직육면체 모양의 상자를 하나 가지고 있는데 이 상자에 정육면체 모양의 주사위를 최대한 많이 채우고 싶습니다. 상자의 가로, 세로, 높이가 저장되어있는 배열 box와 주사위 모서리의 길이 정수 n이 매개변수로 주어졌을 때, 상자에 들어갈 수 있는 주사위의 최대 개수를 return 하도록 solution 함수를 완성해주세요. 🙋‍♀️ 내 생각 제일먼저 상자의 가로 길이를 생각했다. 가로의 길이에 몇개가 들어갈지를 먼저 생각한 뒤, 세로의 길이가 몇개 들어갈 수 있는지 마지막으로 높이에 따라 몇개가 들어갈지를 생각했다. 상자와 주사위가 평면적이지 않기때문에 머릿속에서 상자를 상상하면서 문제를 풀었는데, 상상한 내용을 설명하기 위해서 아래에 사진을 준비해보았다. 가로의 길이가 10이라면, 길..

프로그래머스 빈 배열에 추가 삭제하기 JS ( Array(), fill() / forEach안에서 범위나누기 )

문제 설명 아무 원소도 들어있지 않은 빈 배열 X가 있습니다. 길이가 같은 정수 배열 arr과 boolean 배열 flag가 매개변수로 주어질 때, flag를 차례대로 순회하며 flag[i]가 true라면 X의 뒤에 arr[i]를 arr[i] × 2 번 추가하고, flag[i]가 false라면 X에서 마지막 arr[i]개의 원소를 제거한 뒤 X를 return 하는 solution 함수를 작성해 주세요. 🙋‍♀️ 내 생각 일단 크게 봤을때 flag가 true인경우, false인 경우 2가지가 있기때문에 if문을 통해서 경우를 나눠야겠다고 생각했다. 그리고 true인 경우, 빈배열에 특정한 값을 추가해야하기때문에 push()를 쓰고 false인경우에는 뒤에서 arr[i]만큼을 삭제해야하기때문에 어디부터 몇개..

프로그래머스 리스트자르기 JS ( case를 여러개 나눌때는 switch문으로 )

문제 설명 정수 n과 정수 3개가 담긴 리스트 slicer 그리고 정수 여러 개가 담긴 리스트 num_list가 주어집니다. slicer에 담긴 정수를 차례대로 a, b, c라고 할 때, n에 따라 다음과 같이 num_list를 슬라이싱 하려고 합니다. n = 1 : num_list의 0번 인덱스부터 b번 인덱스까지 n = 2 : num_list의 a번 인덱스부터 마지막 인덱스까지 n = 3 : num_list의 a번 인덱스부터 b번 인덱스까지 n = 4 : num_list의 a번 인덱스부터 b번 인덱스까지 c 간격으로 올바르게 슬라이싱한 리스트를 return하도록 solution 함수를 완성해주세요. 🙋‍♀️ 내 생각 배열을 어디부터 어디까지 자를것인지를 silcer의 요소들을 num_list의 인덱스..

프로그래머스 세번째 구분자 JS ( match()는 split()과 유사하다 / || 연산자 )

문제 설명 임의의 문자열이 주어졌을 때 문자 "a", "b", "c"를 구분자로 사용해 문자열을 나누고자 합니다. 예를 들어 주어진 문자열이 "baconlettucetomato"라면 나눠진 문자열 목록은 ["onlettu", "etom", "to"] 가 됩니다. 문자열 myStr이 주어졌을 때 위 예시와 같이 "a", "b", "c"를 사용해 나눠진 문자열을 순서대로 저장한 배열을 return 하는 solution 함수를 완성해 주세요. 단, 두 구분자 사이에 다른 문자가 없을 경우에는 아무것도 저장하지 않으며, return할 배열이 빈 배열이라면 ["EMPTY"]를 return 합니다. 🙋‍♀️ 내 생각 구분자를 이용해서 문자열을 자르는 문제이기때문에 바로 split()이 떠올랐다. 문제는 split(..

프로그래머스 글자지우기 JS ( for...of 반복가능한 객체를 간편하게 순회 )

문제 설명 문자열 my_string과 정수 배열 indices가 주어질 때, my_string에서 indices의 원소에 해당하는 인덱스의 글자를 지우고 이어 붙인 문자열을 return 하는 solution 함수를 작성해 주세요. 🙋‍♀️ 내 생각 indices라는 매개변수에 적힌 값과 일치하는 위치의 String 요소를 제거하는 문제이다. 이 문제에서는 indices의 요소들을 my_string의 요소의 인덱스에 연결하는 것이 핵심이라고 생각했다. indices는 값자체를 이용하는 반면, my_string은 인덱스로 접근하여서 최종적인 값의 변경을 가져온다. indices: 배열안의 요소 그 자체를 이용 my_string: 문자열의 인덱스를 이용하여, 문자열을 변경 my_string의 인덱스를 각각 하..

프로그래머스 문자열이 몇 번 등장하는지 세기 JS ( indexOf() 특징 )

문제 설명 문자열 myString과 pat이 주어집니다. myString에서 pat이 등장하는 횟수를 return 하는 solution 함수를 완성해 주세요. 🙋‍♀️ 내 생각 우선, myString을 돌면서 ban, ana, nan과 같이 앞에서부터의 값을 담는 작업을 해야겠다고 생각했다. 그리고 그렇게 담은 값들중 pat을 포함하는 것만 남겨서 수를 세는 방법으로 문제를 풀었다. ✅ 내 코드 function solution(myString, pat) { const arr =[] for(i=0; i v===pat).length } 먼저 arr를 선언하고 []빈배열로 초기화해주었다. 그리고 앞에서부터 ban, ana..와 같이 담는 작업을 하기 위해서 for문을 사용했다. for문으로 myString을 ..

프로그래머스 순서 바꾸기 JS (slice(), ... 스프레드연산자 Spread Operator / splice() )

문제 설명 정수 리스트 num_list와 정수 n이 주어질 때, num_list를 n 번째 원소 이후의 원소들과 n 번째까지의 원소들로 나눠 n 번째 원소 이후의 원소들을 n 번째까지의 원소들 앞에 붙인 리스트를 return하도록 solution 함수를 완성해주세요. 🙋‍♀️ 내 생각 배열의 앞에서부터 n개를 잘라서 배열의 맨 뒤에 붙이는 문제이다. 배열의 인덱스를 이용해서 범위를 지정해야겠다고 생각했고, 또 배열을 잘라야하기때문에 slice()를 써야겠다고 생각했다. (slice()가 범위를 지정하면서 자르는 기능을 하기때문!!) ✅ 내 코드 function solution(num_list,n) { let front_list= num_list.slice(0,n) let back_list= num_lis..

프로그래머스 문자열 뒤집기 JS ( 문자열의 특정부분만 변경 / slice()의 범위 )

문제 설명 문자열 my_string과 정수 s, e가 매개변수로 주어질 때, my_string에서 인덱스 s부터 인덱스 e까지를 뒤집은 문자열을 return 하는 solution 함수를 작성해 주세요. 🙋‍♀️ 내 생각 문자열의 인덱스를 이용해서 중간의 일부만 변경하는 문제이다. 인덱스를 어디부터 어디까지 자를지를 정해서 자르기 위해서 slice()를 이용해야겠다고 생각했다. 그리고 변경하는 값이 중간에 위치하기때문에 결국에 문자열은 크게는 3조각으로 나뉠것이기 때문에 string1,2,3로 3개의 변수를 만들어서 잘라진 값들을 담아서 문제를 풀었다. ✅ 내 코드 function solution(my_string,s,e){ let string1='' let string2='' let string3='' ..