TIL/Java 알고리즘 문제 풀이
23.06.24
J1-H00N
2023. 6. 24. 22:13
연속된 수의 합
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를 통해 멈췄다.