전체 글 202

[프로그래머스] 모의고사

https://programmers.co.kr/learn/courses/30/lessons/42840#qna import java.util.ArrayList; import java.util.Arrays; import java.util.List; class Solution { public int[] solution(int[] answers) { //수포자별로 배열을 만들기 //찍는 방식을 배열로 생성 int[] p1a = new int[]{1, 2, 3, 4, 5}; int[] p2a = new int[]{2, 1, 2, 3, 2, 4, 2, 5}; int[] p3a = new int[]{3, 3, 1, 1, 2, 2, 4, 4, 5, 5}; int[] p1 = new int[answers.length];..

Language/JAVA 2022.01.20

[프로그래머스] 같은 숫자는 싫어

https://programmers.co.kr/learn/courses/30/lessons/12906 import java.util.*; public class Solution { public int[] solution(int []arr) { //add 사용, 답안 배열의 길이를 모르기 때문에 ArrayList사용 List num = new ArrayList(); num.add(arr[0]); //num 배열의 index 선언 int k = 0; for (int x : arr) { if(!num.get(k).equals(x)) { num.add(x); k++; } } // for (int i = 0; i < arr.length; i++) { // if(!num.get(k).equals(arr[i])) {..

Language/JAVA 2022.01.20

#Stream

Stream의 특징 원본의 데이터를 변경하지 않는다. Stream arrString = arr.stream();과 같이 별도의 복사본을 만든다. 일회용이다 : 한번 사용이 끝난 후 Stream이 또 필요한 경우에는 Stream을 다시 생성해야 한다. 내부 반복으로 작업을 처리하기 때문에 간결한 코드 작성이 가능하다. 함수형 인터페이스와 람다식 Stream은 매개변수로 함수형 인터페이스를 받음. 람다식은 반환값으로 함수형 인터페이스를 반환 → Stream의 매개변수로 전달 가능 람다식 : 함수형 인터페이스의 인스턴트를 생성하여 함수를 변수처럼 선언 Stream의 연산 종류 1. 생성하기 Stream객체를 생성하는 단계 Stream은 재사용이 불가능하므로, 닫히면 다시 생성해주어야 한다. 배열, 컬렉션, 임..

Language/JAVA 2022.01.19

[프로그래머스] 최소직사각형

https://programmers.co.kr/learn/courses/30/lessons/86491 이중배열 문제이다. 이중배열에서 원하는 값을 어떻게 꺼낼지, max를 어떻게 구할지에서 많이 헤맸다. 명함의 크기를 조정한다는 부분을 처음에 엄청 복잡하게 생각했었는데, 가로가 세로보다 큰 값으로 모두 통일하면 간단히 해결할 수 있는 문제였다. class Solution { public int solution(int[][] sizes) { //가로 세로 중 가로에 큰 값이 오도록 조정 for (int i = 0; i < sizes.length; i++) { if (sizes[i][0] < sizes[i][1]) { int a = sizes[i][0]; int b = sizes[i][1]; sizes[i]..

Language/JAVA 2022.01.19

[프로그래머스] 3진법 뒤집기

import java.util.ArrayList; import java.util.List; class Solution { public int solution(int n) { int answer = 0; List number = new ArrayList(); //3진법으로 변환 + 뒤집을 거라서 0부터 넣어도 됨 while (n > 0) { number.add(n % 3); n = n/3; } //다시 10진법으로 변환 for (int j = 0; j < number.size(); j++) { answer += number.get(j) * Math.pow(3, number.size()-1-j); } return answer; } } 뒤집는다는 부분때문에 처음에 List배열을 만들어서 add를 사용하였는데 ..

Language/JAVA 2022.01.19

[프로그래머스] 하샤드 수

https://programmers.co.kr/learn/courses/30/lessons/12947 class Solution { public boolean solution(int x) { boolean answer = true; //charAt으로 변환하여 자리수를 계산하기 위해 String으로 변환 //String num = Integer.toString(x)도 가능 String num = String.valueOf(x); int sum = 0; //charAt을 아스키코드에서 숫자로 계산할 때는 '0'(혹은 48)을 빼야 함 for (int i = 0; i < num.length(); i++) { sum += num.charAt(i) - '0'; } //answer = (x % sum == 0) ..

Language/JAVA 2022.01.19

[프로그래머스] 콜라츠 추측

https://programmers.co.kr/learn/courses/30/lessons/12947 class Solution { public int solution(int num) { int answer = 0; //연산과정에서 int단위를 넘어가기 때문에 long으로 변환 필요 long n = (long)num; //500회에 대한 조건을 만족시키기 위해 501번 실행 for (int i = 0; i 1 && n % 2 == 0) { n /= 2; answer++; } else if (n > 1) { n = n * 3 + 1; answer++; } else if (n == 1) { //위의 두 조건에서 모두 n>1이 있어 없어도 되는 부분 break; } } ..

Language/JAVA 2022.01.19