머쓱이는 할머니께 생신 축하 편지를 쓰려고 합니다. 할머니가 보시기 편하도록 글자 한 자 한 자를 가로 2cm 크기로 적으려고 하며, 편지를 가로로만 적을 때, 축하 문구 message
를 적기 위해 필요한 편지지의 최소 가로길이를 return 하도록 solution 함수를 완성해주세요.
message
는 영문 알파벳 대소문자, ‘!’, ‘~’ 또는 공백으로만 이루어져 있습니다.message | result |
---|---|
"happy birthday!" | 30 |
"I love you~" | 22 |
입출력 예 #1
message
의 글자 수가 15개로 최소 가로 30cm의 편지지가 필요합니다.입출력 예 #2
message
의 글자 수가 11개로 최소 가로 22cm의 편지지가 필요합니다.const solution = (message) => Array.from(message).length * 2;
/* 내가 처음 작성한 코드이다. message를 array로 바꾸면 좋다고 생각하여 Array.from을 사용해서
message로 들어오는 string을 배열로 바꾸어주었다. (SOLUTION2를 필수로 확인해야할듯하다ㅠ)
배열은 length를 확인할 수 있으므로 길이 체크 후 한글자마다 2cm를 사용한다고 했으니
'Array.from(message).length * 2'를 해주었다. */
const solution = (message) => message.length * 2;
/* 다른분들 코드를 보다가 string도 length가 된다는 것을 알게되었다... 배열만 가능한줄 알았던 나는
SOLUTION1의 방식으로 굳이 Array.from을 했는데,, 그럴필요가 없었다. */
function solution(message) {
return message.split('').length * 2;
}
/* 다른분이 작성한 코드이다. split seperator로 ''를 지정하여 문자열을 잘라서 각각의 잘라진
조각들을 배열에 저장해주는 방식으로 진행해주었다. */
const solution = (message) => message.split('').length * 2;
// 위랑 같은 코드인데 화살표 함수로 내가 간결하게 작성해보았다.
function solution(message) {
if (message.length === 1) return 2;
else if (message.length === 2) return 4;
else if (message.length === 3) return 6;
else if (message.length === 4) return 8;
else if (message.length === 5) return 10;
else if (message.length === 6) return 12;
else if (message.length === 7) return 14;
else if (message.length === 8) return 16;
else if (message.length === 9) return 18;
else if (message.length === 10) return 20;
else if (message.length === 11) return 22;
else if (message.length === 12) return 24;
else if (message.length === 13) return 26;
else if (message.length === 14) return 28;
else if (message.length === 15) return 30;
else if (message.length === 16) return 32;
else if (message.length === 17) return 34;
else if (message.length === 18) return 36;
else if (message.length === 19) return 38;
else if (message.length === 20) return 40;
else if (message.length === 21) return 42;
else if (message.length === 22) return 44;
else if (message.length === 23) return 46;
else if (message.length === 24) return 48;
else if (message.length === 25) return 50;
else if (message.length === 26) return 52;
else if (message.length === 27) return 54;
else if (message.length === 28) return 56;
else if (message.length === 29) return 58;
else if (message.length === 30) return 60;
else if (message.length === 31) return 62;
else if (message.length === 32) return 64;
else if (message.length === 33) return 66;
else if (message.length === 34) return 68;
else if (message.length === 35) return 70;
else if (message.length === 36) return 72;
else if (message.length === 37) return 74;
else if (message.length === 38) return 76;
else if (message.length === 39) return 78;
else if (message.length === 40) return 80;
else if (message.length === 41) return 82;
else if (message.length === 42) return 84;
else if (message.length === 43) return 86;
else if (message.length === 44) return 88;
else if (message.length === 45) return 90;
else if (message.length === 46) return 92;
else if (message.length === 47) return 94;
else if (message.length === 48) return 96;
else if (message.length === 49) return 98;
else if (message.length === 50) return 100;
return undefined;
}
/* 다른분이 작성한 코드인데,, 그냥 대단해서 가져와봤다.. */
출처 : 프로그래머스 스쿨 | 코딩테스트 연습
https://school.programmers.co.kr/learn/courses/30/lessons/120898