자바39 [프로그래머스] 최솟값 만들기 - 자바(Java) 문제 https://programmers.co.kr/learn/courses/30/lessons/12941 풀이 두 배열 중 하나는 오름차순 정렬, 남은 하나는 내림차순 정렬한 뒤 같은 인덱스끼리 곱한 합이 최솟값이다. import java.util.*; class Solution { public int solution(int []A, int []B) { int answer = 0; //reverseOrder() 를 사용하려면 래퍼 타입이어야하기 때문에 int[] -> Integer[] 변환 //boxed() : 프리미티브 타입을 래퍼 타입으로 박싱한 스트림을 만들어준다. Integer[] BB = Arrays.stream(B).boxed().toArray(Integer[]::new); Arrays.so.. 2022. 1. 8. [프로그래머스] 피보나치 수 - 자바(Java), 메모이제이션 문제 https://programmers.co.kr/learn/courses/30/lessons/12945 풀이 n이 최대 100000이기 때문에 엄청나게 큰 수가 만들어지게 되어 일반적인 피보나치를 계산하는 로직으로는 오버플로우가 발생하게 된다. 그렇기 때문에 fibo[n]%1234567 = (fibo[n-1] + fibo[n-2])%1234567 식을 활용하여 코드를 작성한다. 또한 메모이제이션을 사용하여 시간 초과를 방지한다. import java.util.*; class Solution { int[] fibo; public int solution(int n) { fibo = new int[n+1]; return dfs(n); } private int dfs(int n) { if(fibo[n] > .. 2022. 1. 4. [프로그래머스] 카펫 - 자바(Java) 문제 https://programmers.co.kr/learn/courses/30/lessons/42842 풀이 코드 public class Main { public int[] solution(int brown, int yellow) { //column, row : 노란 격자 컬럼, 행 길이 for(int column = 1; column yellow/column*2 + column*2 + 4 = (yellow/column + column)*2 + 4 = brown */ if(yellow%column == 0 && ((row+column)*2 + 4) == brown) { return new int[] {row+2, column+2}; } } return null; } } 2022. 1. 3. [Java] ThreadLocal ThreadLocal 여러 쓰레드가 같은 인스턴스 필드의 값을 변경하는 상황에 발생하는 동시성 문제를 해결하는 방법으로 자바는 언어 차원에서 ThreadLocal이라는 것을 제공한다. ThreadLocal은 각 쓰레드 별로 전용 내부 저장소를 만들어 값을 관리하는 방법으로 동시성 문제를 해결한다. ThreadLocal 사용법 ThreadLocal threadLocal = new ThreadLocal(); //데이터 저장 threadLocal.set("Hello"); //데이터 조회 threadLocal.get(); //데이터 삭제(쓰레드 로컬의 모든 값을 삭제하는 것이 아닌 해당 쓰레드의 값만 삭제) threadLocal.remove(); set을 하면 해당 쓰레드 전용 저장소에 값이 저장되고, get을.. 2021. 12. 30. [알고리즘/백준] 20056 마법사 상어와 파이어볼 - 삼성 SW 역량테스트, 구현, 자바 문제 https://www.acmicpc.net/problem/20056 풀이 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; public class Main { private static class Fireball { int r, c; int m; //질량 int s; //속력 int d; //방향 public Fireball(int r, int c, int m, int s, int d) { this.r = r; this.c = c; this.m = m; this.s = s; this.d = d; } } private static int[] dx.. 2021. 12. 18. [알고리즘/백준] 16236 아기 상어 - 자바(Java), 삼성 SW 역량테스트, 너비우선탐색(BFS) 문제 https://www.acmicpc.net/problem/16236 풀이코드 일반적인 BFS 풀이 방법에 추가적인 조건을 덧붙혀서 풀이해야되는 문제이다. BFS를 한번 진행할 때마다 상어가 이동 가능한 모든 곳을 탐색하며 먹을 수 있는 최단 거리의 물고기를 찾는데 만약 최단 거리가 같은 물고기가 여러개 있는 경우 더 위쪽에 있는 물고기를, 이 또한 같다면 더 왼쪽에 있는 물고기 한마리를 먹는다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; public class Main { static class Pos { int x; int y; public.. 2021. 11. 15. 이전 1 2 3 4 5 ··· 7 다음