상세 컨텐츠

본문 제목

프로그래머 도전기 26일차

프로그래머가 될거야!

by Choyee 2023. 9. 24. 00:11

본문

오늘은

오늘은 토요일 입니다

그래서 개발자로 일하고있는 또 다른 친구에게 속성 과외를 받으러 먼길을 다녀왔습니다

그리고 이제 슬슬 프론트엔드 쪽으로 갈지 백엔드 쪽으로 가야할지

방향을 잡아두어야 한다고 생각을 해서 친구에게 조언을 구했습니다 

프론트엔드는 직접 보여지는 결과물이 있고 내가 생각했던것을 구현해낼 수 있다는 장점이 있고

백엔드는 눈에 보이지는 않지만 실질적으로 어떤 프로그램이 작용을 할 수 있도록 하는 

일을 담당하고 있어서 어렵지만 그만큼 성취도가 경쟁력이 있는 분야라는 장점이 있습니다

프로그래밍을 배우기로 정한 시점에서부터 사실은 프론트엔드쪽을 염두해 두고 있었기 때문에

자세하게 들으면 들을수록 프론트엔드일을 하고싶다고 생각이 되었습니다

누군가 맡긴 일을 충분히 구현해내고 원하는 만큼 그모습 그대로 결과물을 만들어서 보여준다면

굉장히 뿌듯할 것 같다는 생각이 들었습니다

 

코딩 테스트

며칠만에 코딩테스트를 풀어보았습니다

JavaScript 로 풀이해보았습니다

순서쌍이란 두 개의 숫자를 순서를 정하여 짝지어 나타낸 쌍으로 (a, b)로 표기합니다. 자연수 n이 매개변수로 주어질 때 두 숫자의 곱이 n인 자연수 순서쌍의 개수를 return하도록 solution 함수를 완성해주세요
function solution(n) {
    var answer = 0;
    
    // 두 숫자의 곱이 n인 자연수
    // 순서쌍의 개수
    
    for(var i = 0; i <= n; i++){
        if(n % i == 0){
            answer++;
        }
    }
    return answer;
}

처음 문제를 해석할 때 순서쌍이라는 단어에 꽂혀 a, b 두개의 변수를 생각해서 복잡하게 풀이를 해나가다가

코드가 난해해졌다는 생각이 들어 최대한 단순하게 간단한거부터 풀어나가라는 친구의 조언을 떠올려

다시 생각해보니 순서쌍을 구하는 것이 아닌 순서쌍의 개수를 구하면 된다는 것에 초점을 맞추어

간단한 코드로 풀어냈습니다

 

 

정수 n이 매개변수로 주어질 때 n의 각 자리 숫자의 합을 return하도록 solution 함수를 완성해주세요
function solution(n) {
    var answer = 0;
    
    // 정수 n 
    // n의 각 자리 숫자의 합을 return
    // 정수 n -> 문자열
    // 문자열의 요소의 합을 구한다
    
    n = String(n);
    
    for(var i = 0; i < n.length; i++){
        answer+= Number(n[i]);
    }
    return answer;
}

주석 처리를 하고 차근차근히 문제를 해석해서 어떻게 풀이해 나갈 것인지 적어놓고

for문을 이용하여 풀이했습니다

 

머쓱이는 학교에서 키 순으로 줄을 설 때 몇 번째로 서야 하는지 궁금해졌습니다. 머쓱이네 반 친구들의 키가 담긴 정수 배열 array와 머쓱이의 키 height가 매개변수로 주어질 때, 머쓱이보다 키 큰 사람 수를 return 하도록 solution 함수를 완성해보세요.
function solution(array, height) {
    var answer = 0;
    
    // 키가 담긴 정수 배열
    // 머쓱이의 키
    
    // 배열과 머쓱이의 키를 비교
    // 차례로 머쓱이 키와 비교
    
    // 머쓱이 키 = height
    // 키큰 사람 수 
    var tall = 0;
    
    for(var i = 0; i < array.length; i++){
        if(array[i] > height){
            tall++;
        }
    }

이 문제도 처음에는 반 친구들의 키 를 큰 순서대로 재정렬해서 머쓱이의 키와 차례로 비교하여

머쓱이가 친구보다 커진 순간의 인덱스 값으로 풀이를 하려고 했는데

친구가 너무 어렵게 생각한다, 최대한 하나씩 해결해라, 한꺼번에 다 하려고 하지 말라는 조언에 따라

다시 생각해보니 순서와 상관없이 배열안의 요소를 꺼내어 키 크기만 비교를 해서 그 숫자만 더해가면

풀이할 수 있었던 문제였습니다

 

마무리

오늘 코딩테스트를 10문제 넘게 풀어보았는데

예전과는 다르게 문제를 해석하는 데에도 눈이 틔인 느낌이고

식을 세워갈 때에도 문법적인 문제나 너무 길어지는 문제가 있긴 하지만

그래도 구현하려고 무엇인가를 생각해서 코드를 적어나갈 수 있다는 점이

큰 발전이 아닐까 하는 생각이 들었습니다

친구들에게는 미안하지만 만날 때 마다 도약하는 느낌이 들어서

주기적으로 차례로 번갈아가며 방문해서 최대한 배우고 와야겠다는 각오를 한 날이었습니다

 

 

 

2023. 09. 23 (토)

관련글 더보기