📝 [Lv0] 잘라서 배열로 저장하기
👀 문제 설명
문자열 my_str과 n이 매개변수로 주어질 때, my_str을 길이 n씩 잘라서 저장한 배열을 return 하도록 solution 함수를 완성해 주세요.
🚨 제한 사항
- 1 ≤ my_str의 길이 ≤ 100
- 1 ≤ n ≤ my_str의 길이
- my_str은 알파벳 소문자, 대문자, 숫자로 이루어져 있습니다.
💻 입출력 예
"abc1Addfggg4556b" | 6 | ["abc1Ad", "dfggg4", "556b"] |
"abcdef123" | 3 | ["abc", "def", "123"] |
✨ 풀이 설명
우선 문제를 보는 순간 splice가 떠올랐다.
기존 배열을 변경하기 때문에 잘라낸 부분은 join으로 문자열로 변환하여 answer 배열에 추가해 주면, 기존 my_str을 배열로 변환한 my_list에서도 answer 부분에 들어간 만큼은 없어지게 된다.(스네이크 케이스 꽤나 심기 불편하네요)
그래서 my_list가 존재할 때까지, n 만큼씩 잘라 answer에 넣어주고 해당 배열을 반환해 주었다.
다른 분의 풀이를 보니 정규식으로 깔끔하게 해결할 수도 있겠다는 생각이 들었다.
🕵️♂️ 코드
📝 [Lv0] 7의 개수
👀 문제 설명
머쓱이는 행운의 숫자 7을 가장 좋아합니다. 정수 배열 array가 매개변수로 주어질 때, 7이 총 몇 개 있는지 return 하도록 solution 함수를 완성해 보세요.
🚨 제한 사항
- 1 ≤ array의 길이 ≤ 100
- 0 ≤ array의 원소 ≤ 100,000
💻 입출력 예
[7, 77, 17] | 4 |
[10, 29] | 0 |
✨ 풀이 설명
위의 문제에서 다른 분이 정규식으로 풀었던 것이 생각나 정규식을 사용해 보았다.
우선 검색하기 편하게 배열 안 문자열을 join으로 합쳐주었다.
그리고 match 함수를 사용하여 문자열 안의 모든 7을 찾았다. 만약 7이 없다면 null이 반환되기 때문에 length를 구할 수 없다.
그렇기 때문에 길이를 구할 수 있는 경우에만 length를 구하기 위해, optional chaining을 사용했다.
구할 수 없다면 7이 없다는 뜻이므로, 0을 반환해 주었다.
🕵️♂️ 코드
📝 [Lv0] 문자열 정렬하기(2)
👀 문제 설명
영어 대소문자로 이루어진 문자열 my_string이 매개변수로 주어질 때, my_string을 모두 소문자로 바꾸고 알파벳 순서대로 정렬한 문자열을 return 하도록 solution 함수를 완성해보세요.
🚨 제한 사항
- 0 < my_string 길이 < 100
💻 입출력 예
"Bcad" | "abcd" |
"heLLo" | "ehllo" |
"Python" | "hnopty" |
✨ 풀이 설명
이번 문제는 하라는 대로 직관적으로 풀었다.
우선 문자열을 toLowerCase()를 사용해 모두 소문자로 변경시켜 주었다. 그 후, 문자열을 배열로 변환시켜 정렬해 주었다. sort()는 기본적으로 문자열 비교를 하기 때문에 다른 옵션 없이 사용하였다. 그 후, 다시 문자열로 변환해 반환해 주었다.
🕵️♂️ 코드
📝 [Lv0] 세균 증식
👀 문제 설명
어떤 세균은 1시간에 두배만큼 증식한다고 합니다. 처음 세균의 마리수 n과 경과한 시간 t가 매개변수로 주어질 때 t시간 후 세균의 수를 return하도록 solution 함수를 완성해주세요.
🚨 제한 사항
- 1 ≤ n ≤ 10
- 1 ≤ t ≤ 15
💻 입출력 예
2 | 10 | 2048 |
7 | 15 | 229,376 |
✨ 풀이 설명
기본값에 2의 n제곱을 곱해주면 된다. 거듭제곱의 우선순위가 더 높기 때문에 괄호를 치지 않아도 된다.
다른 분의 풀이 중, 2진수 임을 캐치하고 shift 연산자를 사용한 것이 신기했다.
🕵️♂️ 코드
📝 [Lv0] 제곱수 판별하기
👀 문제 설명
어떤 자연수를 제곱했을 때 나오는 정수를 제곱수라고 합니다. 정수 n이 매개변수로 주어질 때, n이 제곱수라면 1을 아니라면 2를 return하도록 solution 함수를 완성해주세요.
🚨 제한 사항
- 1 ≤ n ≤ 1,000,000
💻 입출력 예
144 | 1 |
976 | 2 |
✨ 풀이 설명
js의 제곱근 함수를 사용하여 값을 구해준 후, 이 값이 정수인지 확인해 주었다.
Math.floor()을 사용하여 내림했을 때의 값과 동일한지 확인했는데, 다른 분의 풀이에서 isInteger()을 사용하여 정수인지 바로 확인할 수 있다는 것을 알게 되었다. (멋져)
🕵️♂️ 코드
'codingtest' 카테고리의 다른 글
[programmers] 가까운 수, 삼각형의 완성조건 (1), 중복된 문자 제거, k의 개수, A로 B 만들기 (0) | 2023.03.10 |
---|---|
[programmers] 인덱스 바꾸기, 영어가 싫어요, 대문자와 소문자, 암호 해독, 369게임 (0) | 2023.03.07 |
[programmers] 배열의 유사도, 문자열 계산하기, 편지, 약수 구하기, 한 번만 등장한 문자 (0) | 2023.03.06 |
[programmers] 문자열 안에 문자열, OX 퀴즈, 자릿수 더하기, n의 배수 고르기, 숫자 찾기 (0) | 2023.03.05 |
[programmers] 가장 큰 수 찾기, 다음에 올 숫자, 문자열 밀기, 연속된 수의 합, 종이 자르기 문제 풀이 (0) | 2023.03.02 |