본문 바로가기

Java/알고리즘63

문자열 다루기 기본 ㅇ 풀이 public boolean solution(String s) { boolean answer = true; if(s.length()==4 || s.length()==6){ for (char c : s.toCharArray()) { if (!Character.isDigit(c)) { return false; } } }else{ return false; } return answer; } 길이가 4 나 6이어야하니, 4,6이 아닐땐일단 false로 해놓고, 4,6일땐 주어진 String s 를 한글자씩 char로 바꿔, Character의 isDigit()은 10진수 숫자인지 판별하는 메서드이므로 10진수의 숫자가 아닌경우엔 바로 false를 반환한다. 2024. 1. 29.
부족한 금액 계산하기 answer 에 price를 1부터 count까지 곱한걸 다 더해준다. 다 더한 값이 money 이하면, 금액이 부족하지 않으므로 다시 answer를 0으로 만들어주고, 아니면, answer - money를 return 하면 된다. ㅇ 풀이 public long solution(int price, int money, int count) { long answer = 0; for(int i = 1; i 2024. 1. 26.
문자열 내림차순으로 배치하기 String 을 내림차순으로 배열하려면 배열로 바꾸고, Arrays.sort(S, Comparator.reverseOrder()) 해주면 내림차순으로 세팅이된다. Arrays.sort(S, Comparator.reverseOrder()); System.out.println(Arrays.toString(S)); //-> [g, f, e, d, c, b, Z] Arrays.sort(S); System.out.println(Arrays.toString(S)); //-> [Z, b, c, d, e, f, g] 문제는 내림차순이니 위에같이하면된다. ㅇ 풀이 public String solution(String s) { String answer = ""; String[] S = s.split(""); Arrays... 2024. 1. 25.
약수의 개수와 덧셈 간단하다 역시. left = 13, right = 17 일때, 13부터 17까지 돌고, 각 수의 약수를 구하고 그걸 세주고 그게 홀수인지 짝수인지 검증하면 끝. public int solution(int left, int right) { int answer = 0; int cnt = 0; for(int i = left; i =1; j--){ if(i % j == 0){ cnt++; } } if(cnt % 2 == 0){ answer += i; }else{ answer -= i; } } return answer; } 처음에 헷갈렸던 부분이 cnt++ 해주고 i가 바뀔때마다 cnt를 0으로 초기화해주는걸 깜빡했다. cnt를 0으로 초기화해줘야 각수의 약수가 짝수인지 홀수인지 알 수 있다. 2024. 1. 24.