https://programmers.co.kr/learn/courses/30/lessons/86051
자바 배열
Arrays.sort(arr);
Arrays.toString(arr)
// 배열로 비교해서 했으나 실패!
import java.util.Arrays;
import java.util.stream.Stream;
class Solution {
public int solution(int[] numbers) {
int answer = 0;
Arrays.sort(numbers);
System.out.println("Arrays.toString(numbers) "+Arrays.toString(numbers));
int temp =0;
for(int i=0; i<numbers.length; i++){ // 매번 자리 값이 바뀌는데 어떻게 하지?
if(numbers[i] == temp){
System.out.println("numbers[i]: "+numbers[i]+", temp>> "+temp);
}else{
System.out.println("numbers[i]: "+numbers[i]+", temp>> "+temp);
answer+=temp;
System.out.println("answer "+answer);
}
temp++;
}// for end
return answer;
}//solution end
}
// 0~9 총합: 45
//45에서 배열에 있는 값을 빼주면 빠진 숫자의 합을 구할 수 있다.
// 값을 비교하지않고 머리를 써서 해결함
// 내머리에서 나옴~~
//하지만 그래도 값을 서로 비교하는 걸로 풀고 싶음
import java.util.Arrays;
import java.util.stream.Stream;
class Solution {
public int solution(int[] numbers) {
int answer = 0;
Arrays.sort(numbers);
//System.out.println("Arrays.toString(numbers) "+Arrays.toString(numbers));
// [0, 1, 2, 3, 4, 6, 7, 8] [0, 4, 5, 6, 7, 8, 9]
for(int i=0; i<numbers.length; i++){
answer += numbers[i];
}// for end
//System.out.println("answer "+answer);
answer = 45 -answer;
return answer;
}//solution end
}
// for in 사용
배열이라 for in을 사용함. 나도 다음번엔!!
for (int i : numbers) {
sum -= i;
}
// 스트림 사용
import java.util.Arrays;
import java.util.stream.IntStream;
class Solution {
public int solution(int[] numbers) {
return IntStream.range(0, 10).filter(i -> Arrays.stream(numbers).noneMatch(num -> i == num)).sum();
}
}
import java.util.Arrays;
public class Array {
public static void main(String[] args) {
int[] numbers = {1,2,3,4,6,7,8,0};
int answer = Solution2.solution(numbers);
}
}
class Solution2 {
public static int solution(int[] numbers) {
int answer = 0;
int[] sum = {0,1,2,3,4,5,6,7,8,9};
System.out.println("최초 Arrays.toString(sum)> "+ Arrays.toString(numbers)+" 최초 Arrays.toString(sum)> "+ Arrays.toString(numbers));
for(int i = 0; i< sum.length; i++){
for(int j=0; j< numbers.length; j++){
if(sum[i] == numbers[j]){
System.out.println("빼기 전 sum["+i+"]>> "+sum[i]);
System.out.println("빼기 전 numbers["+j+"]>> "+numbers[j]);
sum[i] -= numbers[j];
System.out.println("뺀 후 Arrays.toString(sum)> "+ Arrays.toString(numbers)+" 뺀 후 Arrays.toString(sum)> "+ Arrays.toString(numbers));
}
}
System.out.println("최종 Arrays.toString(sum)> "+ Arrays.toString(numbers));
answer += sum[i];
}
return answer;
}//solution end
}
최초 Arrays.toString(sum)> [1, 2, 3, 4, 6, 7, 8, 0] 최초 Arrays.toString(sum)> [1, 2, 3, 4, 6, 7, 8, 0]
빼기 전 sum[0]>> 0
빼기 전 numbers[7]>> 0
뺀 후 Arrays.toString(sum)> [1, 2, 3, 4, 6, 7, 8, 0] 뺀 후 Arrays.toString(sum)> [1, 2, 3, 4, 6, 7, 8, 0]
최종 Arrays.toString(sum)> [1, 2, 3, 4, 6, 7, 8, 0]
빼기 전 sum[1]>> 1
빼기 전 numbers[0]>> 1
뺀 후 Arrays.toString(sum)> [1, 2, 3, 4, 6, 7, 8, 0] 뺀 후 Arrays.toString(sum)> [1, 2, 3, 4, 6, 7, 8, 0]
빼기 전 sum[1]>> 0
빼기 전 numbers[7]>> 0
뺀 후 Arrays.toString(sum)> [1, 2, 3, 4, 6, 7, 8, 0] 뺀 후 Arrays.toString(sum)> [1, 2, 3, 4, 6, 7, 8, 0]
최종 Arrays.toString(sum)> [1, 2, 3, 4, 6, 7, 8, 0]
빼기 전 sum[2]>> 2
빼기 전 numbers[1]>> 2
뺀 후 Arrays.toString(sum)> [1, 2, 3, 4, 6, 7, 8, 0] 뺀 후 Arrays.toString(sum)> [1, 2, 3, 4, 6, 7, 8, 0]
빼기 전 sum[2]>> 0
빼기 전 numbers[7]>> 0
뺀 후 Arrays.toString(sum)> [1, 2, 3, 4, 6, 7, 8, 0] 뺀 후 Arrays.toString(sum)> [1, 2, 3, 4, 6, 7, 8, 0]
최종 Arrays.toString(sum)> [1, 2, 3, 4, 6, 7, 8, 0]
빼기 전 sum[3]>> 3
빼기 전 numbers[2]>> 3
뺀 후 Arrays.toString(sum)> [1, 2, 3, 4, 6, 7, 8, 0] 뺀 후 Arrays.toString(sum)> [1, 2, 3, 4, 6, 7, 8, 0]
빼기 전 sum[3]>> 0
빼기 전 numbers[7]>> 0
뺀 후 Arrays.toString(sum)> [1, 2, 3, 4, 6, 7, 8, 0] 뺀 후 Arrays.toString(sum)> [1, 2, 3, 4, 6, 7, 8, 0]
최종 Arrays.toString(sum)> [1, 2, 3, 4, 6, 7, 8, 0]
빼기 전 sum[4]>> 4
빼기 전 numbers[3]>> 4
뺀 후 Arrays.toString(sum)> [1, 2, 3, 4, 6, 7, 8, 0] 뺀 후 Arrays.toString(sum)> [1, 2, 3, 4, 6, 7, 8, 0]
빼기 전 sum[4]>> 0
빼기 전 numbers[7]>> 0
뺀 후 Arrays.toString(sum)> [1, 2, 3, 4, 6, 7, 8, 0] 뺀 후 Arrays.toString(sum)> [1, 2, 3, 4, 6, 7, 8, 0]
최종 Arrays.toString(sum)> [1, 2, 3, 4, 6, 7, 8, 0]
최종 Arrays.toString(sum)> [1, 2, 3, 4, 6, 7, 8, 0]
빼기 전 sum[6]>> 6
빼기 전 numbers[4]>> 6
뺀 후 Arrays.toString(sum)> [1, 2, 3, 4, 6, 7, 8, 0] 뺀 후 Arrays.toString(sum)> [1, 2, 3, 4, 6, 7, 8, 0]
빼기 전 sum[6]>> 0
빼기 전 numbers[7]>> 0
뺀 후 Arrays.toString(sum)> [1, 2, 3, 4, 6, 7, 8, 0] 뺀 후 Arrays.toString(sum)> [1, 2, 3, 4, 6, 7, 8, 0]
최종 Arrays.toString(sum)> [1, 2, 3, 4, 6, 7, 8, 0]
빼기 전 sum[7]>> 7
빼기 전 numbers[5]>> 7
뺀 후 Arrays.toString(sum)> [1, 2, 3, 4, 6, 7, 8, 0] 뺀 후 Arrays.toString(sum)> [1, 2, 3, 4, 6, 7, 8, 0]
빼기 전 sum[7]>> 0
빼기 전 numbers[7]>> 0
뺀 후 Arrays.toString(sum)> [1, 2, 3, 4, 6, 7, 8, 0] 뺀 후 Arrays.toString(sum)> [1, 2, 3, 4, 6, 7, 8, 0]
최종 Arrays.toString(sum)> [1, 2, 3, 4, 6, 7, 8, 0]
빼기 전 sum[8]>> 8
빼기 전 numbers[6]>> 8
뺀 후 Arrays.toString(sum)> [1, 2, 3, 4, 6, 7, 8, 0] 뺀 후 Arrays.toString(sum)> [1, 2, 3, 4, 6, 7, 8, 0]
빼기 전 sum[8]>> 0
빼기 전 numbers[7]>> 0
뺀 후 Arrays.toString(sum)> [1, 2, 3, 4, 6, 7, 8, 0] 뺀 후 Arrays.toString(sum)> [1, 2, 3, 4, 6, 7, 8, 0]
최종 Arrays.toString(sum)> [1, 2, 3, 4, 6, 7, 8, 0]
최종 Arrays.toString(sum)> [1, 2, 3, 4, 6, 7, 8, 0]
Process finished with exit code 0
'알고리즘 > 알고리즘' 카테고리의 다른 글
[프로그래머스]오픈채팅방 (0) | 2021.12.24 |
---|---|
[프로그래머스] 숫자 문자열과 영단어 (0) | 2021.12.20 |
[프로그래머스] 나머지가 1이 되는 수 찾기 (0) | 2021.12.10 |
[프로그래머스] 기능개발 (0) | 2021.11.22 |
[백준] 팩토리얼 (0) | 2021.10.14 |