상세 컨텐츠

본문 제목

프로그래머 도전기 20일차

프로그래머가 될거야!

by Choyee 2023. 9. 17. 23:01

본문

오늘은

오늘은 일요일이라

회사에 다니는 프로그래머 친구를 만나러 다녀왔습니다

배우고자 하는 열정을 가지고 주말이라 쉬고있는 친구를 탈탈 털고왔습니다

열심히 해보라며 조언을 아끼지 않았던 친구를 봐서라도

조금씩 조금씩 더 힘을 내보도록 해야겠습니다

 

코드를 짤 때 특히 반복문이나 조건문을 사용할 때

컴퓨터로 작업을 하는 것이지만 직접 그림을 그려서

도식화 해보고 코드가 어떤식으로 작동하는지

확인을 해보는 습관을 갖게되면 큰 도움이 된다고 하더군요

또, 코드를 작성하기에 앞서 먼저 글로 어떠어떠하게 

코드를 짜나갈 것인지 정리를 해서 하나씩 코드를 실현해 나가면

크게 꼬이는 일이 없다고도 했습니다

 

배운것을 점검하고 테스트 해볼 수 있는 방법도 알려주었는데

바로 코딩테스트 연습을 해보는 것이었습니다

 

오늘 처음 시작해서 기초적인 부분부터 조오금은 복잡해보일 수도 있는

문제들을 풀어보았는데

스스로 지금 어느정도의 상황인지 파악할 수 있는 기회가 되었고

계속해서 하다보니 오기도 생기고 재미도 생겨서 자주 해야겠다고 생각했습니다

 

 

코딩 테스트 연습
Description
첫 번째 분수의 분자와 분모를 뜻하는 numer1, denom1, 두 번째 분수의 분자와 분모를 뜻하는 numer2, denom2가 매개변수로 주어집니다. 두 분수를 더한 값을 기약 분수로 나타냈을 때 분자와 분모를 순서대로 담은 배열을 return 하도록 solution 함수를 완성해보세요.
 
class Solution {
    public int[] solution(int numer1, int denom1, int numer2, int denom2) {
       int numer = numer1 * denom2 + numer2 * denom1;
        int denom = denom1 * denom2;
        
        int num = 1;
        for(int i = 1; numer >= i && i <= denom; i++){
            if(numer % i == 0 && denom % i == 0)
            { num = i;}
        }
         numer = numer/num;
         denom = denom/num;
        
        int[] answer = {numer, denom};
        return answer;
    }
}

기억나는 것 몇 문제와 제가 풀이한 코드를 올려볼까 합니다

 

Description
정수 배열 numbers가 매개변수로 주어집니다. numbers의 각 원소에 두배한 원소를 가진 배열을 return하도록 solution 함수를 완성해주세요.
class Solution {
    public int[] solution(int[] numbers) {
        for(int i = 0; i < numbers.length; i++){
           numbers[i] *= 2;
        }return numbers;
    }
}

저는 왜 이리도 배열이 어렵게 느껴지는지 모르겠습니다..

코딩 테스트를 할 때 배열 문제가 나오면 좀 더 신중하고 꼼꼼하게 풀 수 있도록 해야겠습니다

Description 머쓱이네 피자가게는 피자를 일곱 조각으로 잘라 줍니다. 피자를 나눠먹을 사람의 수 n이 주어질 때, 모든 사람이 피자를 한 조각 이상 먹기 위해 필요한 피자의 수를 return 하는 solution 함수를 완성해보세요.
class Solution {
    public int solution(int n) {
        // 피자수, 사람의 수, 피자 조각의 수
        // 피자 조각 수 = 7
        // 피자 = 피자조각*7
        // 사람 = 피자조각
        // 사람 수가 7명 이상인 경우 피자를 7로 나누었을 때 나머지가 생기면 피자 + 1
        
        int piece = 7;
        int people = n;
        int pizza = n / piece;
        
        if(n % piece != 0){
            pizza ++;
        }
        return pizza;
    }
}

이런식으로 주석처리를 해주어서 미리 변수를 생각하고 어떤 값을 할당해줄지

정해놓고 코드를 짜게 되면 코드가 크게 꼬이는 일 없이 차근차근히 풀어나가게 되는것 같습니다

 

 

마무리

기초문제부터 시작해서 꽤 많은 문제들을 풀어보았는데

간단히 풀리는 문제가 있는 반면에 기초문제임에도 시간이 꽤 걸리는 문제들이 있었습니다

언제쯤 기초를 탈출하게 될지... 걱정과 압박감을 느끼면서

문제를 풀며 좀 더 의욕이 불타올랐던 하루였습니다

 

 

 

 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

 

2023. 09. 17(일)

 

 

관련글 더보기