본문 바로가기

Java/알고리즘63

없는 숫자 더하기 0~9까지라길래 새로운 배열을 만들어서 해보려했다. int[] num = {0,1,2,3,4,5,6,7,8,9} 해서 하나씩 비교하고 없으면 어떻게 해보려했는데 생각보다 너무 안됐다. 그래서 노트를 꺼내서 생각해보자마자 0~9까지 더한수에서 인수로 주어진numbers 의 원소들의 합을 빼면 되는구나! 싶었다. 0~9의 합은 45. 예를 들어 numbers = {5,8} 이면 45 - 13하면 되는거였다. 뻘짓을 하고있었다 나는... 크흠 그래서 내 풀이를 보자면 public static int solution(int[] numbers) { int answer = 0; for(int i = 0; i < 10; i++){ answer += i; } for(int j = 0; j < numbers.length.. 2024. 1. 17.
나누어 떨어지는 숫자 배열(향상된 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.