민스씨의 일취일장

구름톤 챌린지 | 1주차 학습일기 [1일차 / 2일차 / 3일차] 본문

Personal Development

구름톤 챌린지 | 1주차 학습일기 [1일차 / 2일차 / 3일차]

읻민스 2023. 8. 19. 15:47
반응형

구름톤 챌린지 1주차 학습일기이다.

구름톤 챌린지 1주차 학습일기

구름톤 첼린지 학습일기 썸네일 이미지이다.
구름톤 첼린지 첫째주

구름톤 챌린지란?

 

구름톤 챌린지 | 20일간의 코딩테스트 챌린지 시작 (Feat. 3일차)

구름톤 챌린지(9oormthon CHALLENGE)에 대한 소개와 챌린지 과정을 기록하는 글입니다. 구름톤 챌린지 구름톤 챌린지라고 들어보셨나요? 구름톤 챌린지는 4주 동안 월요일부터 금요일까지 매일 한 문

ydmins.com

Day 1 운동 중독 플레이어

문제분석

1RM = W * (1 + R/30)

입력받은 정수 W와 R 값을 대입해 계산 후 소수점은 버린 정수값을 출력해야 하는 문제이다.

풀이 전략

1. 정수 나누기 정수 연산 시 몫만 남는 Java 기본 기능을 활용하면 소수점 버리기는 간단히 끝난다.

2. 나누는 시점이 중요하다. R/30을 한 다음 W를 곱하면 R이 30보다 작은 경우 0이 되버리기 때문이다.

static void execute(){
    int RM = W + W*R/30;
    System.out.println(RM);
}

결과

가볍게 성공! 첫날이여서 몸풀기 문제를 주신듯 하다! 구름이 얼굴이 생겼네요!

1일차 미션 페이지 모습이다.
1일차 미션 페이지

Day 2 프로젝트 매니징

문제분석

i = 1 ~ N 번의 프로젝트가 C(i)분이 걸리는 문제이다.

풀이 전략

1. C(i)분을 순서대로 더하면서 분이 60이 넘으면 시간에 1을 더해주고 분에선 60을 빼준 나머지만 남겨둔다.

1번 방식으로 풀었지만 글을 쓰면서 하나의 전략이 더 있다는 것을 알게 됐다.

2. C(i)분을 모두 더한 뒤 마지막에 60으로 나눈 몫을 시간, 나머지를 분으로 출력한다.

static void timeCounter(int minute) {
    M += minute;
    if(M >= 60){
        T += M/60;
        M %= 60;
    }
    if(T >=24){
        T %=24;
    }
}

결과

어찌됐든 문제풀이는 성공!

미션 완료 모습이다.구름이가 모자와 안경을 쓰게됐다.
2일차 미션 완료
미션 블록 2개를 모았다.
2일차 블록

구름이 모자와 안경을 획득했어요.

Day 3 합 계산하기

문제 분석

문자열로 입력받은 숫자와 연산기호들을 수타입으로 변환하고, 연산기호들은 인식해 알맞은 연산을 하는 문제이다.

풀이 전략

1. 문자열 첫 번째, 세 번째는 숫자가 오는 걸 아니까 StringTokenizer로 받아서 바로 Integer로 변환해준다. 

2. 문자열 두 번째는 연산기호가 나오는 데 StringTokenizer로 받은 다음 바로 char 타입으로 변환해준다. char 타입으로 변환해주는 이유는 String 타입은 비교할 때 equals() 메서드를 사용해야 하는데 메서드 사용 안하고 비교하기 위해서 변환해주었다.

3. Switch 문을 활용해 char 타입의 연산자를 인식하고 안맞은 연산을 해준다.

static void execute() throws IOException{
    int a, b;
    char operator;
    for(int i=0; i<N; i++){
        st = new StringTokenizer(br.readLine());
        a = Integer.parseInt(st.nextToken());
        operator = st.nextToken().charAt(0);
        b = Integer.parseInt(st.nextToken());

        switch(operator){
            case '+' :
                Sum += (a+b);
                break;
            case '-' :
                Sum += (a-b);
                break;
            case '*' :
                Sum += (a*b);
                break;
            case '/' :
                Sum += (a/b);
        }
    }
    System.out.println(Sum);	
}

결과

구름이 체크무늬 남방 옷을 구할 수 있었어요.

3일차 미션 완료 모습이다.구름이가 체크무늬 남방을 얻었다.
3일차 미션 완료
3일차 획득 미션 블록 모습이다.
3일차 미션 블록

 

728x90
반응형