Java107 나누어 떨어지는 숫자 배열(향상된 for문 꿀팁 idx++) 배열에 대한 이해가 필요한 문제였다. 레벨1치고 고전했던 문제다. 현타가 좀 왔다. public static int[] solution(int[] arr, int divisor) { int[] resultArray; // 나누어 떨어지는 값 개수 계산 int count = 0; for (int num : arr) { if (num % divisor == 0) { count++; } } if (count == 0) { resultArray = new int[]{-1}; } else { // 나누어 떨어지는 값이 있는 경우 배열에 담고 정렬하기 resultArray = new int[count]; int index = 0; for (int num : arr) { if (num % divisor == 0) {.. 2024. 1. 16. 서울에서 김서방 찾기, "==" 와 ".equals()"의 차이 문제 참 재밌다ㅋㅋ 근데 너무쉽네 근데 IDE에서는 되는데 왜 테스트가 실패하지? 했다. IDE에서 처음 푼 방법은 public static String solution(String[] seoul) { int i = 0; int answer = 0; for(String kim : seoul){ if(kim == "Kim"){ answer = i; } i++; } return "김서방은 " + answer + "에 있다"; } 이랬는데 잘 되길래 될줄알았다. answer은 int형이라그런가? 싶어서 Integer.toString(answer) 해서 String형으로 바꿨는데도 자꾸 answer가 0으로 들어갔다. 그래서 뭐가 문제지하면서 수정해보면서 발견했다. 바로 if문에서 == 으로 해서 안됬던거였다... 2024. 1. 12. 음양 더하기 쉽다. sings의 인덱스 위치에 false면 음수로, true면 양수로해서 다 더하믄 된다. ㅇ 풀이 class Solution { public int solution(int[] absolutes, boolean[] signs) { int sum = 0; for(int i = 0; i < absolutes.length; i++){ if(signs[i] == false){ sum += absolutes[i] * -1; }else{ sum += absolutes[i]; } } return sum; } } 끝~ 2024. 1. 12. 콜라츠 추측 단순하게 while문으로 문제에 나온 조건들을 맞춰주고, cnt로 시도횟수 세주고 500번 초과되면 -1을 return하면 되는 간단한 문제. public static int solution(int num) { int cnt = 0; while(num != 1){ if(cnt > 500){ return -1; } if(num % 2 == 0){ num /= 2; }else{ num = num * 3 + 1; } cnt++; } return cnt; } 아무리봐도 이게 맞는데 자꾸 테스트케이스 3번626331에서 488이나온다. 테스트케이스가 잘못된줄 알았다. int의 최대값은 2147483647인데 그게 넘어가서 오류가 나나 싶었다. 그래서 파라미터의 int를 long형으로 바꿔주니 바로 됐다. 어이가 .. 2024. 1. 9. 이전 1 ··· 12 13 14 15 16 17 18 ··· 27 다음