Algorithm 9

[알고리즘] 로마자에서 숫자로 바꾸기(js)

Q. 1~3999 사이의 로마자 s를 인자로 주면 그에 해당하는 숫자를 반환해주세요. 로마 숫자를 숫자로 표기하면 다음과 같습니다. Symbol Value I 1 V 5 X 10 L 50 C 100 D 500 M 1000 로마자를 숫자로 읽는 방법은 로마자를 왼쪽부터 차례대로 더하면 됩니다. III = 3 XII = 12 XXVII = 27 입니다. 그런데 4를 표현할 때는 IIII가 아니라 IV 입니다. 뒤의 숫자에서 앞의 숫자를 빼주면 됩니다. 9는 IX입니다. I는 V와 X앞에 와서 4, 9 X는 L, C앞에 와서 40, 90 C는 D, M앞에 와서 400, 900 A. function romanToNum(s) { //로마자:숫자 객체 변수는 romeNum const romeNum = { 'I' :..

[알고리즘] 문자열 배열 strlist가 매개변수로 주어집니다. strlist 각 원소의 길이를 담은 배열을 retrun하도록 solution 함수를 완성해주세요. (js)

Q. 문자열 배열 strlist가 매개변수로 주어집니다. strlist 각 원소의 길이를 담은 배열을 retrun하도록 solution 함수를 완성해주세요. A. 내 답 let strlist = ["We", "are", "the", "world!"] function solution(strlist) { let answer = []; for(let i=0; i strlist.map(str => str.length); 문제 해결 과정 우선, 배열의 모든 인덱스에 접근해서 length를 받아오기 위해 for문을 돌렸다 그리고 나는 이걸 answer에 +=로 넣으려고 했다 내 answer의 초기값은 []였는데 그러다보니 length가 string으로 받아와졌다 어떻게 이걸 다시 number로 바꿔야하지 하다가 여..

[알고리즘] 각에서 0도 초과 90도 미만은 예각, 90도는 직각, 90도 초과 180도 미만은 둔각 180도는 평각으로 분류합니다. (js)

Q. 각에서 0도 초과 90도 미만은 예각, 90도는 직각, 90도 초과 180도 미만은 둔각 180도는 평각으로 분류합니다. 각 angle이 매개변수로 주어질 때 예각일 때 1, 직각일 때 2, 둔각일 때 3, 평각일 때 4를 return하도록 solution 함수를 완성해주세요. 예각 : 0

[알고리즘] 자바스크립트 알고리즘 문제 : 머쓱이는 40살인 선생님이 몇 년도에 태어났는지 궁금해졌습니다. (js)

Q. 머쓱이는 40살인 선생님이 몇 년도에 태어났는지 궁금해졌습니다. 나이 age가 주어질 때, 2022년을 기준 출생 연도를 return 하는 solution 함수를 완성해주세요. A. 내 답 function solution(age) { let answer = 2022 - age + 1; return answer; } 더 좋은 답 function solution(age) { return new Date().getFullYear() - age + 1; } 문제 해결 과정 당연히 단순하게 계산을 해서 구했다 Date() 함수 몰랐던 건 아니지만 이럴 때 척척 사용하는 사람들 새삼 대단스러웠다 TIL Date.prototype.getFullYear() https://developer.mozilla.org/k..

[알고리즘] 자바스크립트 알고리즘 문제 : 정수 num1과 num2가 매개변수로 주어집니다. 두 수가 같으면 1 다르면 -1을 retrun하도록 solution 함수를 완성해주세요. (js)

Q. 정수 num1과 num2가 매개변수로 주어집니다. 두 수가 같으면 1 다르면 -1을 retrun하도록 solution 함수를 완성해주세요. A. 내 답 function solution(num1, num2) { if (num1 == num2) { return 1 } else { return -1 } } 더 좋은 답 function solution(num1, num2) { var answer = num1 === num2 ? 1 : -1; return answer; } 문제 해결 과정 답이 나오는 것에만 집중해서 더 좋은 코드를 짜는 법은 생각하지 못했다 당연히 삼항연산자를 쓰면 더 간결한 답을 낼 수 있는데,,, 다음에는 답을 내는 것보단 간결한 코드를 작성하는 것에 집중해야겠다 TIL 삼항연산자 ht..

[알고리즘] 자바스크립트 알고리즘 문제 : 문제 등차수열 혹은 등비수열 common이 매개변수로 주어질 때, 마지막 원소 다음으로 올 숫자를 return 하도록 solution 함수를 완성해보세요. (js)

Q. 등차수열 혹은 등비수열 common이 매개변수로 주어질 때, 마지막 원소 다음으로 올 숫자를 return 하도록 solution 함수를 완성해보세요. A. function solution(common) { if (common[2] - common[1] === common[1] - common[0]) { return common.pop() + common[1] - common[0]; } else { return common.pop() * (common[1] / common[0]); } } TIL Array.prototype.pop() pop() 메서드는 배열에서 마지막 요소를 제거하고 그 요소를 반환한다 ex. const animal = ['cat', 'dog', 'rabbit', 'lion'] co..

[알고리즘] 자바스크립트 알고리즘 문제 : strs은 단어가 담긴 배열입니다.공통된 시작 단어(prefix)를 반환해주세요. (js)

Q. strs은 단어가 담긴 배열입니다. 공통된 시작 단어(prefix)를 반환해주세요. 예를 들어 strs = ['start', 'stair', 'step'] return은 'st' strs = ['start', 'wework', 'today'] return은 '' A. function getPrefix(strs) { if (strs.length === 0) return ''; let prefix = strs[0]; for (let i = 1; i < strs.length; i++) { while (strs[i].indexOf(prefix) !== 0) { prefix = prefix.substring(0, prefix.length - 1); } } return prefix; } 문제 해결 과정 우선 ..

[알고리즘] 자바스크립트 알고리즘 문제 : 숫자인 num을 인자로 넘겨주면, 뒤집은 모양이 num과 똑같은지 여부를 반환해주세요. (js)

Q . 숫자인 num을 인자로 넘겨주면, 뒤집은 모양이 num과 똑같은지 여부를 반환해주세요. num: 숫자 return: true or false (뒤집은 모양이 num와 똑같은지 여부) 예를 들어, num = 123 return false => 뒤집은 모양이 321 이기 때문 num = 1221 return true => 뒤집은 모양이 1221 이기 때문 num = -121 return false => 뒤집은 모양이 121- 이기 때문 num = 10 return false => 뒤집은 모양이 01 이기 때문 A. const sameReverse = num => { const stringNum = num.toString(); return stringNum === stringNum.split('').r..