하루 2시간
본문 바로가기
728x90
[프로그래머스] 더 맵게 자바(Java) https://school.programmers.co.kr/learn/courses/30/lessons/42626 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 우선순위 큐 사용 주석 참고 코드 import java.util.*; class Solution { public int solution(int[] scoville, int K) { int answer = 0; //우선순위 큐 사용 PriorityQueue pq = new PriorityQueue(); for(int i : scoville){ pq.add(i); } //스코빌 지수가 K 이상 .. 2023. 4. 11.
[백준] 2493 탑 자바(Java) https://www.acmicpc.net/problem/2493 2493번: 탑 첫째 줄에 탑의 수를 나타내는 정수 N이 주어진다. N은 1 이상 500,000 이하이다. 둘째 줄에는 N개의 탑들의 높이가 직선상에 놓인 순서대로 하나의 빈칸을 사이에 두고 주어진다. 탑들의 높이는 1 www.acmicpc.net 풀이 stack에 탑의 위치, 높이를 저장 이전 탑의 길이) 현재 탑의 길이 이전 탑의 위치 표기 수신할 수 있는 탑이 없으면 0 표기 코드 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Stack; import java.util.Str.. 2023. 4. 10.
[백준] 1874 스택 수열 자바(Java) https://www.acmicpc.net/problem/1874 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net 풀이 스택 활용 코드 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Stack; public class Main { public static void main(String[] ar) throws Exception { .. 2023. 4. 9.
[프로그래머스] 땅따먹기 자바(Java) https://school.programmers.co.kr/learn/courses/30/lessons/12913 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 우선순위 큐 사용 코드 import java.util.*; class Solution { int solution(int[][] land) { int answer = 0; for(int i = 1; i < land.length; i++){ // 현재 밟은 칸을 제외한 값 저장 land[i][0] += Math.max(land[i - 1][1], Math.max(land[i - 1][2], la.. 2023. 4. 8.
[Java] JVM heap, GC 이전 글 [Java] JVM 전체 프로세스 및 내부 JVM JVM은 컴파일의 결과물인 바이트 코드를 실행하기 위한 가상 머신이다. [Java] JVM은 무엇이며 자바 코드는 어떻게 실행ᄒ 목표 자바 소스 파일(.ja iyk2h.tistory.com Java Heap Instance(Object)와 Array 객체 두 가지 종류만 저장되는 공간이며, 모든 Thread에 의해 공유되는 영역이다. 이곳에 생성된 객체들은 다른 객체의 필드 또는 스택에 존재하는 다른 메소드에 의해 참조될 수 있다. 참조하는 변수가 사라진다면 이 객체는 필요 없는 것으로 간주하고 Garbage Collector에 의해서 할당이 해제된다. JVM은 Java Heap에 Memory를 할당하는 In.. 2023. 4. 7.
[프로그래머스] 피로도 자바(Java) https://school.programmers.co.kr/learn/courses/30/lessons/87946 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 완전 탐색 DFS 코드 class Solution { static boolean[] visited; static int max = 0; void dfs(int k, int[][] dungeons, int cnt) { // 모든 케이스 순회 for (int i = 0; i < dungeons.length; i++) { int a = dungeons[i][0]; int b = dungeons[i.. 2023. 4. 6.
[프로그래머스] 연속 부분 수열 합의 개수 자바(Java) 풀이 원순열 특징 사용 {4,7,9,1,1} -> {4,7,9,1,1,4,7,9,1} 배열 늘리기 자기 자신부터, 원소의 길이만큼 더하기 코드 import java.util.*; import java.util.stream.*; class Solution { public int solution(int[] elements) { int[] newElements = new int[elements.length * 2]; // {4,7,9,1,1} -> {4,7,9,1,1,4,7,9,1} for(int i = 0; i < elements.length; i++) { newElements[i] = newElements[i + elements.length] = elements[i]; } Set set = new Hash.. 2023. 4. 5.
[프로그래머스] n^2 배열 자르기 자바(Java) 풀이 (1,1)(1,2)(1,3) (2,1)(2,2)(2,3) (3,1)(3,2)(3,3) 각 인덱스(y, x) 값 중 큰 값이 배열의 값 max(1,1)max(1,2)max(1,3) = 1 2 3 max(2,1)max(2,2)max(2,3) = 2 2 3 max(3,1)max(3,2)max(3,3) = 3 3 3 1차원 배열로 변환 idx / n = y의 인덱스 값 idx % n = x의 인덱스 값 코드 class Solution { public static int[] solution(int n, long left, long right) { int[] answer = new int[(int)(right - left) + 1]; for (int i = 0; i < answer.length; i++) {.. 2023. 4. 4.
[프로그래머스] 위장 자바(Java) 풀이 조합의 경우의 수는 A * B 코드 import java.util.*; class Solution { public int solution(String[][] clothes) { int answer = 1; HashMap map = new HashMap(); // 종류별 옷 카운트 for(int i =0; i 2023. 4. 3.
[프로그래머스] 귤 고르기 자바(Java) https://school.programmers.co.kr/learn/courses/30/lessons/138476 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 map 이용 코드 import java.util.*; class Solution { public int solution(int k, int[] tangerine) { int answer = 0; Map sizeMap = new HashMap(); // sizeMap data set (사이즈별로 정리) for(int size : tangerine) { sizeMap.put(size, size.. 2023. 4. 2.
[프로그래머스] 괄호 회전하기 자바(Java) https://school.programmers.co.kr/learn/courses/30/lessons/76502 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 아스키 코드 사용 코드 import java.util.*; class Solution { public int solution(String s) { int answer = 0; for(int i = 0 ; i 1 차이.. 2023. 4. 1.
[프로그래머스] 둘만의 암호 자바(Java) https://school.programmers.co.kr/learn/courses/30/lessons/155652 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 주의사항 경계 값 주의 ex) a, z 경계 값 테스트 케이스 s= "ybc" skip = "az" index =1 오답 : "acd" 정답 : "bcd" index 값만큼 증가 시 'z'를 초과 시 'a'의 값의 존재 유무를 판단해야 한다. 코드 class Solution { public String solution(String s, String skip, int index) { String .. 2023. 3. 31.
[프로그래머스] 신고 결과 받기 자바(Java) https://school.programmers.co.kr/learn/courses/30/lessons/92334 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 신고 한 목록, 신고 당한 목록 정리 신고 한 목에서 신고 당한 사람 조회 신고 당한 사람의 사람의 사이즈 k와 비교 코드 import java.util.HashMap; import java.util.HashSet; import java.util.Map; import java.util.Set; class Solution { public int[] solution(String[] id_list.. 2023. 3. 30.
[Java] JVM 전체 프로세스 및 내부 JVM JVM은 컴파일의 결과물인 바이트 코드를 실행하기 위한 가상 머신이다. [Java] JVM은 무엇이며 자바 코드는 어떻게 실행ᄒ 목표 자바 소스 파일(.java)을 JVM으로 실행하는 과정 이해하기. JVM이란 무엇인가 자바 가상머신( Java Virtual Machine)의 약자이다. JVM은 자바 소스코드로부터 만들어지는 자바 바이너리 파일(.class)을 iyk2h.tistory.com JVM 전체 프로세스 프로그램이 처음 실행될 때 클래스 로더는 필요한 .class 바이트코드 파일을 런타임 데이터 영역으로 로드하는 일을 담당합니다. 프로그램이 실행될 때 실행 엔진이 아직 로드되지 않은 바이트코드를 발견하면 클래스 로더를 사용하여 필요한 바이트코드를 런타.. 2023. 3. 29.
[프로그래머스] 개인정보 수집 유효기간 자바(Java) https://school.programmers.co.kr/learn/courses/30/lessons/150370 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 terms에 나온 값을 today 기준으로 값을 빼줍니다. 1번 값을 map에 term에 나온 약관 종류 별로 저장합니다. privacies에 나온 값을 기준으로 저장된 map의 값과 비교해 이전이면 파기합니다. 코드 import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.util.ArrayList.. 2023. 3. 29.
[프로그래머스] 신규 아이디 추천 자바(Java) https://school.programmers.co.kr/learn/courses/30/lessons/72410 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이(주석) & 코드 class Solution { public String solution(String new_id) { // length 3 ~ 15 // 1. upperCase to LowerCase // 1단계 new_id의 모든 대문자를 대응되는 소문자로 치환합니다. new_id = new_id.toLowerCase(); //2단계 new_id에서 알파벳 소문자, 숫자, 빼기(-), 밑줄.. 2023. 3. 28.
[프로그래머스] 공원 산책 자바(Java) https://school.programmers.co.kr/learn/courses/30/lessons/172928 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 단순 구현 문제 범위와 장애물 존재 유무 확인 필 코드 class Solution { public int[] solution(String[] park, String[] routes) { int sx = 0; int sy = 0; char[][] arr = new char[park.length][park[0].length()]; for(int i = 0; i < park.length; i++.. 2023. 3. 28.
[프로그래머스] 크레인 인형뽑기 게임 자바(Java) https://school.programmers.co.kr/learn/courses/30/lessons/64061 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 2차원 배열을 스텍으로 변경 moves의 값에 따라 스텍에서 pop 쌓아둔 바구니 마지막 값과 비교 사실 1번 과정을 꼭 필요하진 않다. 코드 import java.util.Stack; class Solution { public int solution(int[][] board, int[] moves) { int answer = 0; Stack[] stacks = new Stack[board[.. 2023. 3. 27.
[프로그래머스] 바탕화면 정리 자바(Java) https://school.programmers.co.kr/learn/courses/30/lessons/161990 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 '#'이 있는 위치 중에 가장 왼쪽의 값, 가장 위쪽의 값, 가장 아래쪽의 값, 가장 오른쪽의 값 주의 사항 : 가장 아래쪽의 값, 가장 오른쪽의 값 은 + 1 필요 코드 class Solution { public int[] solution(String[] wallpaper) { int startH = -1; int lastH = -1; int startW = Integer.MAX_VALU.. 2023. 3. 26.
[프로그래머스] 대충 만든 자판 자바(Java) https://school.programmers.co.kr/learn/courses/30/lessons/160586 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 타겟 문자열 배열 조회 각 문자열의 문자를 keymap에서 index 값 조회 newIdx값이 -1 아니고, 기존 minIdx 값 보다 작으면 갱신 minIdx 값이 그대로면 -1, 아니면 minIdx + 1 값 코드 class Solution { public int[] solution(String[] keymap, String[] targets) { int[] answer = new in.. 2023. 3. 25.
[프로그래머스] 덧칠하기 자바(Java) https://school.programmers.co.kr/learn/courses/30/lessons/161989# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 일반 풀이 배열 사용해서 페인트 영역 표시 다시 칠해야 하는 영역 시 페인트 칠하고 칠한 부분 스킵 간결한 풀이 다시 칠해야 하는 첫 영역 기록 -> cur cur + m -1 값(롤러 길이)이 다음 칠해야 하는 영역보다 작거나 같을 때 cur = 다음 다시 칠해야 하는 영역 2, 3 반복 일반 풀이 코드 class Solution { public int solution(int n, int m.. 2023. 3. 24.
[프로그래머스] 멀리 뛰기 자바(Java) 풀이 dp 사용 코드 class Solution { public long solution(int n) { long[] dp = new long[n + 1]; dp[0] = 1; dp[1] = 1; for(int i = 2; i 2023. 3. 23.
[프로그래머스] 예상 대진표 자바(Java) https://school.programmers.co.kr/learn/courses/30/lessons/12985 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 다른 사람 풀이 중 이진 코드로 풀이를 해서 어떤 식으로 풀었나 알아보려고 합니다. 코드 class Solution { public int solution(int n, int a, int b) { return Integer.toBinaryString((a-1)^(b-1)).length(); } } 어떤 원리로 동작하는지 보자. 아래 표는 1 ~ 8, 0 ~ 7, 0 ~ 7 값의 이진코드이다. 1과.. 2023. 3. 23.
[Java] JVM은 무엇이며 자바 코드는 어떻게 실행하는 것인가 목표 자바 소스 파일(.java)을 JVM으로 실행하는 과정 이해하기. JVM이란 무엇인가 자바 가상머신( Java Virtual Machine)의 약자이다. JVM은 자바 소스코드로부터 만들어지는 자바 바이너리 파일(.class)을 실행할 수 있다. 또한 JVM은 플랫폼에 의존적이다. 즉 리눅스의 JVM과 윈도우즈의 JVM은 다르다. 단, 컴파일된 바이너리 코드는 어떤 JVM에서도 동작시킬 수 있다. 하드웨어에 맞게 완전히 컴파일된 상태가 아니고 실행 시에 해석(interpret)되기 때문에 속도가 느리다는 단점을 가지고 있다. 하지만 요즘엔 바이트코드(컴파일된 자바코드)를 하드웨어의 기계어로 바로 변환해주는 JIT컴파일러와 향상된 기술이 적용되어 속도의 격차를 많이 줄였다. 즉, JVM은 CPU가 원.. 2023. 3. 22.
[프로그래머스] 기사단원의 무기 자바(Java) https://school.programmers.co.kr/learn/courses/30/lessons/136798 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 시간 초과 나지 않게 배열 사용 class Solution { public int solution(int number, int limit, int power) { int[] count = new int[number + 1]; for (int i = 1; i 2023. 3. 21.
[프로그래머스] 문자열 나누기 자바(Java) https://school.programmers.co.kr/learn/courses/30/lessons/140108 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해설은 주석참고 class Solution { public int solution(String s) { // 마지막은 결국 분해되어 미리 카운트해둠 int answer = 1; // 첫 문자 저장 char c = s.charAt(0); // 같은 문자 카운트 int cc = 1; // 다른 문자 카운트 int dc = 0; for (int i = 1; i < s.length() -1 ; i++).. 2023. 3. 19.
[프로그래머스] 옹알이 (2) 자바(Java) https://school.programmers.co.kr/learn/courses/30/lessons/133499 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr class Solution { public int solution(String[] babblings) { // "aya", "ye", "woo", "ma" 4가지 int answer = 0; for(int i = 0; i < babblings.length; i++) { // 연속된 발음 제외 if(babblings[i].contains("ayaaya") || babblings[i].contain.. 2023. 3. 17.
728x90