본문 바로가기

코딩테스트6

[프로그래머스 | JS] 레벨 0. 세 개의 구분자 (feat. [], {}은 true다) ❓ 문제: 세 개의 구분자 임의의 문자열이 주어졌을 때 문자 "a", "b", "c"를 구분자로 사용해 문자열을 나누고자 합니다. 예를 들어 주어진 문자열이 "baconlettucetomato"라면 나눠진 문자열 목록은 ["onlettu", "etom", "to"] 가 됩니다. 문자열 myStr이 주어졌을 때 위 예시와 같이 "a", "b", "c"를 사용해 나눠진 문자열을 순서대로 저장한 배열을 return 하는 solution 함수를 완성해 주세요. 단, 두 구분자 사이에 다른 문자가 없을 경우에는 아무것도 저장하지 않으며, return할 배열이 빈 배열이라면 ["EMPTY"]를 return 합니다. 📝 문제 풀이 정규식을 활용해서 해당 구분자(a, b, c)로 문자열을 나누고 배열을 반환하면 되는데.. 2023. 4. 26.
[프로그래머스 | JS] 레벨 0. 가까운 1 찾기 (feat. mdn 사이트를 잘 살피자) ❓ 문제: 가까운 1 찾기 정수 배열 arr가 주어집니다. 이때 arr의 원소는 1 또는 0입니다. 정수 idx가 주어졌을 때, idx보다 크면서 배열의 값이 1인 가장 작은 인덱스를 찾아서 반환하는 solution 함수를 완성해 주세요. 단, 만약 그러한 인덱스가 없다면 -1을 반환합니다. 📝 문제 풀이 주어진 인덱스부터 for문으로 순회하면서 해당 인덱스를 찾을지 아니면 배열을 복사해서 찾을지 고민했다. 분명 배열을 특정 인덱스부터 탐색하는 효율적이고 간단한 방법이 있을 것 같아서 구글링해봤지만 괜히 힌트만 보게 될까봐 적극적으로 찾진 못했다. mdn 사이트를 살펴보다가 for문이 더 빠를 것 같았지만 뭔가 프로그래머스는 줄이 짧을수록 점수를 더 주는 것 같아서 slice와 indexOf로 풀기로 했.. 2023. 4. 25.
[프로그래머스 | JS] 레벨 0. 특이한 정렬 (feat. sort()) ❓ 문제: 특이한 정렬 정수 n을 기준으로 n과 가까운 수부터 정렬하려고 합니다. 이때 n으로부터의 거리가 같다면 더 큰 수를 앞에 오도록 배치합니다. 정수가 담긴 배열 numlist와 정수 n이 주어질 때 numlist의 원소를 n으로부터 가까운 순서대로 정렬한 배열을 return하도록 solution 함수를 완성해주세요. 📝 문제 풀이 배열의 메서드와 삼항연산자를 이용해서 바로 결과값을 리턴하도록 풀었다. 인자로 넘어오는 numlist가 오름차순으로 정렬된 상태가 아니여서 맨 위의 sort을 안하면 테스트 2번에서 통과가 안돼서 sort를 두 번이나 쓴 게 과연 최선일까 고민했었다. (그리고 점수도 1점밖에 못 받아서.... 그닥 휼륭한 풀이라고는......) // 나의 풀이 function so.. 2023. 4. 14.
[프로그래머스 | JS] 레벨 0. 중복된 문자 제거 (feat. Set 객체) 문제를 풀수록 배열에 대한 메서드나 반복문에 대한 이해도가 높아지는 장점과 동시에 다른 방법으로도 푸는 방법을 공부하고 싶어 다른 분들이 푸는 풀이를 꼭 참고한다. 그러다 개념만 배우고 저만치 멀리 두고있던 Set 으로 된 풀이를 보고 이번 기회에 다시 복습하고자 글을 쓰고자 한다. ❓ 문제: 점의 위치 구하기 // 문제 설명 문자열 my_string이 매개변수로 주어집니다. my_string에서 중복된 문자를 제거하고 하나의 문자만 남긴 문자열을 return하도록 solution 함수를 완성해주세요. // 제한사항 1. 1 ≤ my_string ≤ 110 2. my_string은 대문자, 소문자, 공백으로 구성되어 있습니다. 3. 대문자와 소문자를 구분합니다. 4. 공백(" ")도 하나의 문자로 구분합.. 2023. 4. 12.