본문 바로가기

카테고리 없음

231128 TIL

* 강의

심화주차를 듣기 위해 숙련 2주차 강의를 뒤적이기 시작했다.

MySelectShop 파일이 있어야 심화주차 강의를 들을 수 있어서 제작하는 중이다.

발제를 들어보니 이번 주차 과제는 TodoList Test라고 한다.. 잘 해낼 수 있을지 걱정

 

* 알고리즘 

알고리즘 배열 문제 마주칠 때마다 머리아파서 회피하는 중

오늘 명예의전당(1) 문제 만나고 좀... ㅎㅎ 배정된 시간 끝나고 친구와 공부하기로 했다.

내일 코드카타 시간에 다 풀 수 있기를...

 

1. 콜라문제

class Solution {
    public int solution(int a, int b, int n) {
        int answer = 0;

        while (n >= a) {
            int cola = (n / a) * b;
            answer += cola;
            n = n % a + cola;
        }
        return answer;
    }
}

 

2. 문자열을 정수로 바꾸기

class Solution {
    public int solution(String s) {
        int answer = Integer.parseInt(s);
        return answer;
    }
}

 

혹은

class Solution {
    public int solution(String s) {
        int answer = Integer.valueOf(s).intValue();
        return answer;
    }
}

 

parseInt와 ValueOf의 차이점에 대해 알아두면 좋을까..? 좋을듯..! ㅎㅎ; 

 

3. 자연수 뒤집어 배열로 만들기

import java.util.*;

class Solution {
    public int[] solution(long n) {
        // 자릿수 계산
        int length = Long.toString(n).length();

        // 배열 초기화
        int[] answer = new int[length];

        // 자릿수를 배열에 저장
        for (int i = 0; i < length; i++) {
            answer[i] = (int) (n % 10);
            n /= 10;
        }

        return answer;
    }
}

 

4. x만큼 간격이 있는 n개의 숫자

class Solution {
    public long[] solution(int x, int n) {
        long[] answer = new long[n];
        
        for (int i = 0; i < n; i++) {   // int i = 1;로 시작하면 new long[n]과 시작 지점이 맞지 않으므로
            answer[i] = (long) x * (i + 1);     // int i = 0으로 시작하고 추후에 (i + 1)해주기
        }
        
        return answer;
    }
}

 

5. 자릿수 더하기

public class Solution {
    public int solution(int n) {
        int answer = 0;

        String changeString = Integer.toString(n);

        for (int i = 0; i < changeString.length(); i++) {
        
            // 문자열에서 i번째 문자를 가져와서 더하기
            answer += Character.getNumericValue(changeString.charAt(i));
        }

        return answer;
    }
}

 

구글링해서 풀긴 했는데 함수가 .. 많다 ..

 

다른 사람들 풀이 ⬇️

import java.util.*;

public class Solution {
    public int solution(int n) {
        int answer = 0;

        while(n!=0){
            //num을 10으로 나눈 나머지를 sum에 더한다.
            answer += n%10;
            //num을 10으로 나눈 값을 다시 num에 저장한다.
            n /= 10;
        }



        // [실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
        System.out.println("Hello Java");

        return answer;
    }
}
import java.util.*;

public class Solution {
    public int solution(int n) {
        int answer = 0;
        while(n>0){

            answer += n%10;
            n /= 10;

        }

        // [실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
        System.out.println("Hello Java");

        return answer;
    }
}