📝 [Lv0] 배열의 길이를 2의 거듭제곱으로 만들기
👀 문제 설명
정수 배열 arr이 매개변수로 주어집니다. arr의 길이가 2의 정수 거듭제곱이 되도록 arr 뒤에 정수 0을 추가하려고 합니다. arr에 최소한의 개수로 0을 추가한 배열을 return 하는 solution 함수를 작성해 주세요.
🚨 제한 사항
- 1 ≤ arr의 길이 ≤ 1,000
- 1 ≤ arr의 원소 ≤ 1,000
💻 입출력 예
arr | result |
[1, 2, 3, 4, 5, 6] | [1, 2, 3, 4, 5, 6, 0, 0] |
[58, 172, 746, 89] | [58, 172, 746, 89] |
✨ 풀이 설명
arr의 길이가 2의 i 거듭제곱보다 작아지는 수를 반환하는 배열의 크기로 설정해 주었다. 해당 배열의 크기에서 기존 arr를 제외한 빈 부분만 0으로 채워주었다.
🕵️♂️ 코드
📝 [Lv0] 뒤에서 5등 위로
👀 문제 설명
정수로 이루어진 리스트 num_list가 주어집니다. num_list에서 가장 작은 5개의 수를 제외한 수들을 오름차순으로 담은 리스트를 return하도록 solution 함수를 완성해주세요.
🚨 제한 사항
- 6 ≤ num_list의 길이 ≤ 30
- 1 ≤ num_list의 원소 ≤ 100
💻 입출력 예
num_list | result |
[12, 4, 15, 46, 38, 1, 14, 56, 32, 10] | [15, 32, 38, 46, 56] |
✨ 풀이 설명
오름차순으로 정렬한 후, 가장 작은 5개를 제외한 배열을 다시 반환해 주었다.
🕵️♂️ 코드
📝 [Lv0] 배열 비교하기
👀 문제 설명
이 문제에서 두 정수 배열의 대소관계를 다음과 같이 정의합니다.
- 두 배열의 길이가 다르다면, 배열의 길이가 긴 쪽이 더 큽니다.
- 배열의 길이가 같다면 각 배열에 있는 모든 원소의 합을 비교하여 다르다면 더 큰 쪽이 크고, 같다면 같습니다.
두 정수 배열 arr1과 arr2가 주어질 때, 위에서 정의한 배열의 대소관계에 대하여 arr2가 크다면 -1, arr1이 크다면 1, 두 배열이 같다면 0을 return 하는 solution 함수를 작성해 주세요.
🚨 제한 사항
- 1 ≤ arr1의 길이 ≤ 100
- 1 ≤ arr2의 길이 ≤ 100
- 1 ≤ arr1의 원소 ≤ 100
- 1 ≤ arr2의 원소 ≤ 100
- 문제에서 정의한 배열의 대소관계가 일반적인 프로그래밍 언어에서 정의된 배열의 대소관계와 다를 수 있는 점에 유의해주세요.
💻 입출력 예
arr1 | arr2 | result |
[49, 13] | [70, 11, 2] | -1 |
[100, 17, 84, 1] | [55, 12, 65, 36] | 1 |
[1, 2, 3, 4, 5] | [3, 3, 3, 3, 3] | 0 |
✨ 풀이 설명
먼저 arr1과 arr2의 길이를 비교해 준 후, 길이가 같다면 각각의 합을 비교해 arr1이 더 크다면 1, arr2가 더 크다면 -1, 두 배열의 크기가 같다면 0을 반환해 주었다.
🕵️♂️ 코드
📝 [Lv0] 문자열 묶기
👀 문제 설명
문자열 배열 strArr이 주어집니다. strArr의 원소들을 길이가 같은 문자열들끼리 그룹으로 묶었을 때 가장 개수가 많은 그룹의 크기를 return 하는 solution 함수를 완성해 주세요.
🚨 제한 사항
- 1 ≤ strArr의 길이 ≤ 100,000
- 1 ≤ strArr의 원소의 길이 ≤ 30
- strArr의 원소들은 알파벳 소문자로 이루어진 문자열입니다.
💻 입출력 예
strArr | result |
["a","bc","d","efg","hi"] | 2 |
✨ 풀이 설명
Map 객체를 이용해 각 글자수를 key로 갖는 hash를 구현해 주었다. 단어의 글자수를 기준으로 카운팅을 해준 후, 배열화하여 개수를 기준으로 내림차순 정렬해 주었다. 0번 인덱스의 1번 인덱스의 값 즉, 가장 빈도가 큰 글자수의 개수를 반환해 주었다.
🕵️♂️ 코드
📝 [Lv0] 커피 심부름
👀 문제 설명
팀의 막내인 철수는 아메리카노와 카페 라테만 판매하는 카페에서 팀원들의 커피를 사려고 합니다. 아메리카노와 카페 라테의 가격은 차가운 것과 뜨거운 것 상관없이 각각 4500, 5000원입니다. 각 팀원에게 마실 메뉴를 적어달라고 하였고, 그 중에서 메뉴만 적은 팀원의 것은 차가운 것으로 통일하고 "아무거나"를 적은 팀원의 것은 차가운 아메리카노로 통일하기로 하였습니다.
각 직원이 적은 메뉴가 문자열 배열 order로 주어질 때, 카페에서 결제하게 될 금액을 return 하는 solution 함수를 작성해주세요. order의 원소는 아래의 것들만 들어오고, 각각의 의미는 다음과 같습니다.
order의 원소 | 의미 |
"iceamericano", "americanoice" | 차가운 아메리카노 |
"hotamericano", "americanohot" | 따뜻한 아메리카노 |
"icecafelatte", "cafelatteice" | 차가운 카페 라테 |
"hotcafelatte", "cafelattehot" | 따뜻한 카페 라테 |
"americano" | 아메리카노 |
"cafelatte" | 카페 라테 |
"anything" | 아무거나 |
🚨 제한 사항
- 1 ≤ order의 길이 ≤ 1,000
💻 입출력 예
order | result |
["cafelatte", "americanoice", "hotcafelatte", "anything"] | 19000 |
["americanoice", "americano", "iceamericano"] | 13500 |
✨ 풀이 설명
문제를 대충 보면 복잡한 것 같지만 사실상 아메리카노와 카페 라테만 구별하면 되는 문제이다. 아무거나는 아메리카노로 통일되기 때문에, 해당 주문이 "cafelatte"라는 단어를 포함하고 있는지만 판단하면 쉽게 해결되는 문제였다.
reduce()를 이용해 총합을 구해주었다. 각 주문이 cafelatte를 포함하는지 includes()로 확인하여 포함한다면 5000원, 포함하지 않는다면 아메리카노를 주문한 것이기 때문에 4500원을 더해주었다.
🕵️♂️ 코드
'codingtest' 카테고리의 다른 글
[programmers] 숫자 변환하기 (0) | 2023.04.28 |
---|---|
[programmers] 두 큐 합 같게 만들기 (0) | 2023.04.25 |
[programmers] 피로도 (0) | 2023.04.23 |
[programmers] 롤케이크 자르기 (0) | 2023.04.21 |
[programmers] 귤 고르기 (0) | 2023.04.19 |