[TIL] - 알고리즘 테스트

장동희·2023년 2월 20일
0

TIL

목록 보기
5/16

알고리즘 테스트

1번 문제 :

하. 물건을 구매해볼까?

르탄이가 1000원을 가지고 편의점에서 물건을 사려고 한다. 편의점에는 500원, 100원, 50원, 10원이 충분히 있고, 편의점 직원은 언제나 거스름돈 개수가 가장 적게 잔돈을 준다. 르탄이가 편의점에서 물건을 사고 1000원 지폐 한 장을 냈을 때, 받을 잔돈의 개수를 구하는 프로그램을 작성하여라. (단, 물건의 가격은 10원 이상 1000원 미만이며, 1원 단위는 고려하지 않는다.)

문제 풀이 :

public class Test1 {
    public int solution(int num) {
        int answer = 0;
        int[] arr = {500, 100, 50, 10};
        int a = 0;
        a = 1000 - num;         //잔돈을 변수 a의 넣어준다.
        for (int i = 0; i < arr.length; i++) {
            if (a/arr[i]>0){
                answer += a/arr[i]; //answer 잔돈의 갯수를 더해준다
                a = a %arr[i];      // a의 나머지를 넣어준다
            }
        }
        return answer;
    }

    public static void main(String[] args) {
        Test1 method = new Test1();
        int num1 = 160;
        System.out.println(method.solution(num1));
    }
}



2번 문제 :

중. 동그라미 엑스로 숫자를?

"OOXXOXXOOO"와 같은 OX문의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다.

문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수는 3이 된다.

"OOXXOXXOOO"의 점수는 1+2+0+0+1+0+0+1+2+3 = 10점이다.

OX퀴즈의 결과가 주어졌을 때, 점수를 구하는 프로그램을 작성하시오.
(단, OX문의 결과는 0보다 크고 80보다 작은 문자열이 주어진다. 또한 문자열은 O와 X만으로 이루어져 있다.)

문제 풀이 :

public class Test2 {
    public int solution(String s) {
        int answer = 0;
        int a = 0;      //X가 들어있을때 수를 초기화해줄 변수선언
        for (int i = 0; i < s.length() ; i++) {
            if (s.charAt(i) == 'X') {       //만약 s.charAt(i)가 X면 a= 0으로 초기화해준다
                a = 0;
            } else {
                answer += a +1;
                a ++;
            }
        }
        return answer;
    }

    public static void main(String[] args) {
        Test2 method = new Test2();
        String s = "OXOOOXXXOXOOXOOOOOXO";
        System.out.println(method.solution(s));
    }
}

TIL :

항해99 2주차동안 제어문과 배열 개념과 알고리즘 문제풀이를 집중적으로 공부했습니다. 그 결과 알고리즘 문제 하문제와 중문제정도는 생각보다 쉽게 풀려서 공부를 열심히 한 보람이 있었습니다. 내일부터는 객체지향의 개념을 시작하게됩니다. 객체지향은 자바에서 굉장히 중요한 파트인거같아 열심히 공부할것이며 알고리즘 문제풀이도 최소한 매일 2문제이상풀기로 다짐했습니다.

0개의 댓글