본문 바로가기
알고리즘/알고리즘 설명

[Java] 문제풀이 (Programmers)

by JayAlex07 2023. 6. 1.

Java 문제풀이 (Programmers)

 

옷가게 할인 받기

10만원 이상은 5%, 30만원 이상은 10%, 50만원 이상은 20% 할인

  • 소수점과 곱하는 것이라서 double을 사용해야 한다
  • 그리고 값은 int 로 반환해서 구해야 한다 (소수점은 버린다고 써져 있)
class Solution {
    public double solution(double price) {
        if (price < 100000) {
            return price;
        } else if(price < 300000) {
            return (int) (price * 0.95);
        } else if (price < 500000) {
            return (int) (price * 0.9);
        } else {
            return (int) (price * 0.8);
        }
    }
}

 

 

점의 위치 구하기

x, y 가 주어진다

  • x, y 면 1 / -x, y 면 2 / -x, -y 면 3 / x, -y 면 4를 반환하는 것이다
class Solution {
    public int solution(int[] dot) {
        if (dot[0] > 0 && dot[1] > 0) {
            return 1;
        } else if (dot[0] < 0 && dot[1] > 0) {
            return 2;
        } else if (dot[0] < 0 && dot[1] < 0) {
            return 3;
        } else if (dot[0] > 0 && dot[1] < 0) {
            return 4;
        }

        return 0
    }
}

 

 

콜라츠 추측

for문을 통해 500번만 반복할 수 있게 한다

  • 500번 안에 1이 만들어 지면 count를 반환한다

500번 이상일 때에는 for문을 빠져나오고, -1을 반환한다

class Solution {
    public int solution(int num) {

        for (int count = 0; count < 500; count ++) {
            if (num == 1) {
                return count;
            } else if (num % 2 == 0) {
                num /= 2;
            } else if (num % 2 == 1) {
                num = num * 3 + 1;
            }
        }

        return -1;
    }
}

 

 

서울에서 김서방 찾기

String을 찾을 때에는 .equals() 를 사용해야 한다

  • python 은 그냥 == 써도 됬는데 ㅜ.ㅜ
class Solution {
    public String solution(String[] seoul) {
        String answer = "";

        for (int i = 0; i < seoul.length; i++) {
            if (seoul[i].equals("Kim")) {
                answer = Integer.toString(i);
                break;
            }
        }

        return "김서방은 " + answer + "에 있다";
    }
}

'알고리즘 > 알고리즘 설명' 카테고리의 다른 글

20230614 [Java] 문제풀이  (0) 2023.06.14
Java 문제풀이 (백준)  (1) 2023.06.13
[Java] 문제풀이 (Programmers)  (1) 2023.05.30
[Java] 문제풀이 (Programmers)  (0) 2023.05.28
그래프 탐색  (0) 2023.05.25