편지
머쓱이는 할머니께 생신 축하 편지를 쓰려고 합니다. 할머니가 보시기 편하도록 글자 한 자 한 자를 가로 2cm 크기로 적으려고 하며, 편지를 가로로만 적을 때, 축하 문구 message를 적기 위해 필요한 편지지의 최소 가로길이를 return 하도록 solution 함수를 완성해주세요.
- 공백도 하나의 문자로 취급합니다.
- 1 ≤ message의 길이 ≤ 50
- 편지지의 여백은 생각하지 않습니다.
- message는 영문 알파벳 대소문자, ‘!’, ‘~’ 또는 공백으로만 이루어져 있습니다.
const solution = (message) => message.length * 2;
가장 큰 수 찾기
정수 배열 array가 매개변수로 주어질 때, 가장 큰 수와 그 수의 인덱스를 담은 배열을 return 하도록 solution 함수를 완성해보세요.
- 1 ≤ array의 길이 ≤ 100
- 0 ≤ array 원소 ≤ 1,000
- array에 중복된 숫자는 없습니다.
function solution(array) {
let maxValue = -1;
let maxIndex = -1;
for(let i = 0; i < array.length; i++) {
const item = array[i];
if(maxValue < item) {
maxValue = item;
maxIndex = i;
}
}
return [maxValue, maxIndex];
}
// 다른 사람의 풀이
function solution(array) {
let max = Math.max(...array);
return [max, array.indexOf(max)];
}
<다른 사람의 풀이에 대한 이해>
max()
indexOf()
문자열 계산하기
my_string은 "3 + 5"처럼 문자열로 된 수식입니다. 문자열 my_string이 매개변수로 주어질 때, 수식을 계산한 값을 return 하는 solution 함수를 완성해주세요.
- 연산자는 +, -만 존재합니다.
- 문자열의 시작과 끝에는 공백이 없습니다.
- 0으로 시작하는 숫자는 주어지지 않습니다.
- 잘못된 수식은 주어지지 않습니다.
- 5 ≤ my_string의 길이 ≤ 100
- my_string을 계산한 결과값은 1 이상 100,000 이하입니다.
my_string의 중간 계산 값은 -100,000 이상 100,000 이하입니다.
계산에 사용하는 숫자는 1 이상 20,000 이하인 자연수입니다.
my_string에는 연산자가 적어도 하나 포함되어 있습니다. - return type 은 정수형입니다.
- my_string의 숫자와 연산자는 공백 하나로 구분되어 있습니다.
function solution(my_string) {
const arr = my_string.split(' ');
let answer = Number(arr[0]);
for(let i = 1; i < arr.length; i+=2) {
const op = arr[i];
const num = Number(arr[i+1]);
op === '+' ? answer += num : answer -= num;
}
return answer;
}
// 다른 사람의 풀이
function solution(my_string) {
let answer = 0;
return eval(my_string);
}
<다른 사람의 풀이에 대한 이해>
eval()
배열의 유사도
두 배열이 얼마나 유사한지 확인해보려고 합니다. 문자열 배열 s1과 s2가 주어질 때 같은 원소의 개수를 return하도록 solution 함수를 완성해주세요.
- 1 ≤ s1, s2의 길이 ≤ 100
- 1 ≤ s1, s2의 원소의 길이 ≤ 10
- s1과 s2의 원소는 알파벳 소문자로만 이루어져 있습니다
- s1과 s2는 각각 중복된 원소를 갖지 않습니다.
function solution(s1, s2) {
let answer = 0;
for(let s1Index = 0; s1Index < s1.length; s1Index++) {
const s1Item = s1[s1Index];
for(let i = 0; i < s2.length; i++) {
const s2Item = s2[i];
if(s1Item === s2Item) answer++;
}
}
return answer;
}
// 다른 사람의 풀이
function solution(s1, s2) {
return s1.filter((v) => s2.includes(v)).length;
}
function solution(s1, s2) {
let answer = 0;
for(let i= 0;i<s1.length;i++){
for(let j =0;j<s2.length;j++){
if(s1[i] === s2[j]) answer += 1;
}
}
return answer;
}
<다른 사람의 풀이에 대한 이해>
filter()
includes()
더 간결하게 처리한 코드!
참고 영상
'코딩테스트 > 프로그래머스 0단계 - 입문' 카테고리의 다른 글
프로그래머스 0단계 - Day18 문자열, 수학, 조건문, 정렬 (0) | 2024.03.23 |
---|---|
프로그래머스 0단계 - Day17 문자열, 수학, 조건문, 배열, 사칙연산 (0) | 2024.03.22 |
프로그래머스 0단계 - Day15 문자열, 해시, 배열, 수학 (0) | 2024.03.21 |
프로그래머스 0단계 - Day14 조건문, 반복문, 시뮬레이션, 문자열 (0) | 2024.03.20 |
프로그래머스 0단계 - Day13 문자열, 배열, 사칙연산, 수학, 조건문 (0) | 2024.03.20 |
댓글