📝 [Lv0] 나이 출력
👀 문제 설명
머쓱이는 40살인 선생님이 몇 년도에 태어났는지 궁금해졌습니다. 나이 age가 주어질 때, 2022년을 기준 출생 연도를 return 하는 solution 함수를 완성해주세요.
🚨 제한 사항
- 0 < age ≤ 120
- 나이는 태어난 연도에 1살이며 1년마다 1씩 증가합니다.
💻 입출력 예
age | result |
40 | 1983 |
23 | 2000 |
✨ 풀이 설명
기준 년도가 정해져있어 간단하게 뺄셈으로 해결하였다. 만약 기준 연도가 없다면, getFullYear()를 사용한 아래 코드를 사용할 수도 있다. 문제 출제는 22년도 기준이라 현재는 23년이 되어 이 문제를 기준으로 한다면, 1을 빼주어야 하지만 말이다.
🕵️♂️ 코드
📝 [Lv0] 피자 나눠 먹기 (1)
👀 문제 설명
머쓱이네 피자가게는 피자를 일곱 조각으로 잘라 줍니다. 피자를 나눠먹을 사람의 수 n이 주어질 때, 모든 사람이 피자를 한 조각 이상 먹기 위해 필요한 피자의 수를 return 하는 solution 함수를 완성해보세요.
🚨 제한 사항
- 1 ≤ n ≤ 100
💻 입출력 예
n | result |
7 | 1 |
1 | 1 |
15 | 3 |
✨ 풀이 설명
일곱 조각이 한 판인 피자를 n명이 먹기 위해 총 몇 판의 피자를 시켜야 적어도 한 명씩은 먹을 수 있는지에 대한 문제이다. 즉, 피자의 조각이 최소 n조각 이상이어야 한다.
피자는 한 판에 일곱 조각이기 때문에 n을 7로 나눴을 때를 올림하여 구하면 된다. Math.ceil() 함수를 사용해 주었다.
🕵️♂️ 코드
📝 [Lv0] 피자 나눠 먹기 (2)
👀 문제 설명
머쓱이네 피자가게는 피자를 여섯 조각으로 잘라 줍니다. 피자를 나눠먹을 사람의 수 n이 매개변수로 주어질 때, n명이 주문한 피자를 남기지 않고 모두 같은 수의 피자 조각을 먹어야 한다면 최소 몇 판을 시켜야 하는지를 return 하도록 solution 함수를 완성해보세요.
🚨 제한 사항
1 ≤ n ≤ 100
💻 입출력 예
n | result |
6 | 1 |
10 | 5 |
4 | 2 |
✨ 풀이 설명
위의 문제와 같은 시리즈의 문제이다. 이번에는 여섯 조각으로 잘린 피자를 남기지 않고, 모두 똑같이 나눠먹을 수 있는 최소 피자의 개수를 구하여야 한다.
따라서, n과 6의 최소공배수를 구하는 것이 이번 문제의 정답이다. 저번에 풀었던 유한소수 판별하기 문제에서 사용했던 최대공약수 구하는 함수를 사용해 주었다. 최소공배수는 두 수의 곱을 최대공약수로 나눈 것과 같기 때문이다.
최대공약수 GCD를 구한 후, n과 6을 곱한 것을 최대공약수로 나누면 n명이 먹을 수 있는 최소 피자 조각의 개수가 나온다.
6으로 나눠주어야 피자 조각이 아닌 피자의 개수를 구할 수 있기 때문에
n * 6 / GCD(n, 6) / 6
즉, n / GCD(n, 6) 가 된다.
🕵️♂️ 코드
📝 [Lv0] 피자 나눠 먹기 (3)
👀 문제 설명
머쓱이네 피자가게는 피자를 두 조각에서 열 조각까지 원하는 조각 수로 잘라줍니다. 피자 조각 수 slice와 피자를 먹는 사람의 수 n이 매개변수로 주어질 때, n명의 사람이 최소 한 조각 이상 피자를 먹으려면 최소 몇 판의 피자를 시켜야 하는지를 return 하도록 solution 함수를 완성해보세요.
🚨 제한 사항
- 2 ≤ slice ≤ 10
- 1 ≤ n ≤ 100
💻 입출력 예
slice | n | result |
7 | 10 | 2 |
4 | 12 | 3 |
✨ 풀이 설명
이번 문제는 피자 나눠 먹기 시리즈의 마지막 문제이다. 이 문제는 피자 나눠 먹기 (1)에서 피자 조각의 개수가 변수로 바뀌었다는 점만 빼면 동일하게 풀 수 있다.
즉, 7의 위치를 변수로 두면 끝나는 문제이다.
🕵️♂️ 코드
📝 [Lv0] 숨어있는 숫자의 덧셈 (1)
👀 문제 설명
문자열 my_string이 매개변수로 주어집니다. my_string안의 모든 자연수들의 합을 return하도록 solution 함수를 완성해주세요.
🚨 제한 사항
- 1 ≤ my_string의 길이 ≤ 1,000
- my_string은 소문자, 대문자 그리고 한자리 자연수로만 구성되어있습니다.
💻 입출력 예
my_string | result |
"aAb1B2cC34oOp" | 10 |
"1a2b3c4d123" | 16 |
✨ 풀이 설명
my_string을 배열화한 다음, reduce()를 이용해 각 문자가 숫자로 바꿀 수 있는지 확인해 주었다. 이 문제에서는 Number.isInteger() 대신 Number.isNaN()을 사용할 수도 있다.
Number.isNaN()는 Not a Number 즉, 숫자가 아닌지를 판별하는 함수이다. 덧셈 연산자로 강제 형변환을 시켜준 문자가 숫자인지 아닌지를 판별하는 것이다.
만약 이 함수를 사용하게 되면, 삼항 연산자 뒷부분을 바꿔서 아래 코드처럼 작성할 수 있다.
🕵️♂️ 코드
'codingtest' 카테고리의 다른 글
[programmers] 기사단원의 무기 (0) | 2023.04.06 |
---|---|
[programmers] 덧칠하기 (0) | 2023.04.03 |
[programmers] 추억 점수 (0) | 2023.04.01 |
[programmers] 바탕화면 정리 (0) | 2023.03.31 |
[programmers] 공원 산책 (0) | 2023.03.30 |