< 오늘의 문제 >
- 가장 큰 수 찾기
- 인덱스 바꾸기
- 외계행성의 나이
가장 큰 수 찾기
function solution(array) {
let max = 0;
let maxIndex = 0;
for(let i = 0; i < array.length; i++){
if(array[i] > max) {
max = array[i];
maxIndex = i;
}
}
return [max, maxIndex];
}
- 나의 풀이
: 요즘 리액트를 배우는 중인데, 습관처럼 const로 기본값을 설정했다가, 중간에 값을 바꾸는 과정에서
오류가 나서 let으로 바꿨다. 예시안엔 양수만 설정되있었지만 음수일 경우를 생각한다면 기본값을 -1로 시작하는게 나을거같다.
인덱스 바꾸기
function solution(my_string, num1, num2) {
var answer = '';
let str1 = my_string[num1]
let str2 = my_string[num2]
let newString = my_string.split('')
newString[num1] = str2
newString[num2] = str1
return newString.join('')
}
function solution(my_string, num1, num2) {
my_string = my_string.split('');
[my_string[num1], my_string[num2]] = [my_string[num2], my_string[num1]];
return my_string.join('');
}
- 다른 사람 풀이
: 구조분해할당과 배열의 비구조화(destructuring)를 사용한 문제를 가져왔다.
생각도 못했던부분인데 확실히 간편하네.. 그냥 저렇게 되는구나..
외계행성의 나이
function solution(age) {
let answer = "";
let newAge = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j"];
age = age.toString();
for(let i = 0; i < age.length; i++){
answer += newAge[age[i]];
}
return answer;
}
- 나의 풀이
: newAge를 모두 설정한 뒤 시작했지만 문자가 한없이 길어질 경우에는 굉장히 무리가 있는 코드라고 생각했지만,
별다른 방법이 생각나지 않았다.
function solution(age) {
const ageArr = age.toString().split("");
let answer = "";
for(let i = 0; i < ageArr.length; i++){
answer += String.fromCharCode(Number(ageArr[i]) + 97);
}
return answer;
}
- 다른 사람 풀이
: 그래서 검색중 아스키코드를 이용한 문제를 봤는데 이렇게 푸는게 정석인거같다.