[프로그래머스/코딩테스트 모음/Javascript] 19

TED·2023년 9월 13일
0

Javascript CodingTest

목록 보기
27/63
post-thumbnail

< 오늘의 문제 >

  1. 가장 큰 수 찾기
  2. 인덱스 바꾸기
  3. 외계행성의 나이

가장 큰 수 찾기

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 선언했다가 중간에 값이 변경안되서 당황
// 예시가 음수일 경우를 생각해서 기본값을 -1로 두는것도 생각하자
  • 나의 풀이
    : 요즘 리액트를 배우는 중인데, 습관처럼 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]]; // age는 0~9
    }
    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);
    } // 알파벳 'a'의 ASCII 코드 값(97)을 이용 +1씩 될때마다 b, c, d, e 순으로 올라간다.
    
    return answer;
}
  • 다른 사람 풀이
    : 그래서 검색중 아스키코드를 이용한 문제를 봤는데 이렇게 푸는게 정석인거같다.
profile
컴맹 개발 입문자

0개의 댓글