본문 바로가기
TIL/Java 알고리즘 문제 풀이

23.06.24

by J1-H00N 2023. 6. 24.

연속된 수의 합

    public int[] solution(int num, int total) {
        int[] answer = new int[num];
        for (int i = 0; i < num; i++) {
            total -= i;
        }
        if (total%num == 0) {
            for (int i = 0; i < num; i++) {
                answer[i] = total / num + i;
            }
        }
        return answer;
    }

처음에는 total을 num으로 나눈 뒤 몫을 통해 배열을 구하려 했으나 이 방법은 배열의 중간값을 구하는 것이고, num이 짝수냐 홀수냐에 따라 방식도 달라져 비효율적이기에 배열의 첫 번째 수를 x라 두고 푸는 방식을 택했다.

 

로그인 성공?

    public String solution(String[] id_pw, String[][] db) {
        String answer = "fail";
        for (int i = 0; i < db.length; i++) {
            if (db[i][0].equals(id_pw[0])) {
                if (db[i][1].equals(id_pw[1])) {
                    answer = "login";
                    break;
                } else {
                    answer = "wrong pw";
                    break;
                }
            }
        }
        return answer;
    }

아이디부터 조회하기에 기본 응답은 fail로 초기화 해두고, 만약 id가 일치하는 것이 있다면 비밀번호도 일치하는지 확인하는 조건문을 사용했다. 조건문 결과에 따라 초기화 해두고 반복문이 계속 시행되면 초기화 값이 변동될 수 있으므로 break를 통해 멈췄다.

'TIL > Java 알고리즘 문제 풀이' 카테고리의 다른 글

23.07.01  (0) 2023.07.01
23.06.29  (0) 2023.06.29
23.06.23  (0) 2023.06.23
23.06.18  (2) 2023.06.18
23.06.16  (0) 2023.06.16