목록Java (371)
기록방
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/rC7Dm/btsa9JT3RUS/AElvRnSzq7CfDXUbWPJnjK/img.png)
👉 문제링크 11279번: 최대 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net 🔸 문제 분석 🔸 배열에 자연수를 넣거나, 배열의 최대값을 꺼내출력하는 연산이 100,000번까지 주어진다. 최대값을 빠르게 구하기 위해, 매번 정렬하는 것이 아니라 최대힙을 구현해야 한다. 🔸 코드 🔸 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Collections; impo..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/RnYSf/btsaTf1kij6/jHyjFfnI1Skmbx14YIpMBK/img.png)
👉 문제링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🔸 문제 분석 🔸 문자열 S의 각 자리 문자들의 왼쪽으로 자신과 같은 문자 까지의 거리를 answer배열에 담아 반환한다. 알파벳 소문자로 입력되므로 26크기의 int배열을 만들어, 각 문자의 최신 위치를 저장한다. 위치가 저장되어 있지 않으면 -1을 저장한다. 🔸 코드 🔸 import java.util.Arrays; class Solution { public int[] solution(String s) { int[] answer = new int[s.length()]; int[] alph = n..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/l8vmu/btsakb6zKun/KoKgukGkhOrwpFW4bKo2ZK/img.png)
👉 문제링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🔸 문제 분석 🔸 문자열 S가 입력된다. 첫 문자부터 카운트해서 첫 문자들의 수와 그 외의 문자들의 수가 같아질 때 까지 잘라낸다. 잘라진 문자열의 수를 출력한다. 🔸 코드 🔸 class Solution { public int solution(String s) { int answer = 0; int size = s.length(); int idx = 0; while(idx < size) { char c = s.charAt(idx); int a = 1; int b = 0; while(++idx < ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/NMini/btr97ojn7P5/MKIXXKfnTrSJkWyFQVmstk/img.png)
👉 문제링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🔸 문제 분석 🔸 새로운 데이터가 입력될 때 마다 내림차순 정렬했을 때, k 번째 수를 출력한다. 배열의 정렬은 시간 복잡도가 커지므로 java 우선순위 큐의 최대 힙을 사용해 정렬한다. 🔸 코드 🔸 import java.util.PriorityQueue; class Solution { public int[] solution(int k, int[] score) { int[] answer = new int[score.length]; PriorityQueue que = new PriorityQueue..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cUYHYb/btr8HJ4Rq0G/aO9P0ajoJR6MOYHbiNMkb0/img.png)
👉 문제링크 2293번: 동전 1 첫째 줄에 n, k가 주어진다. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) 다음 n개의 줄에는 각각의 동전의 가치가 주어진다. 동전의 가치는 100,000보다 작거나 같은 자연수이다. www.acmicpc.net 🔸 문제 분석 🔸 n가지 동전으로 k원을 만드는 경우의 수를 출력한다. 동전을 무한으로 쓸 수 있으면 전형적인 DP문제로, dp[i] 는 i원을 만들 수 있는 경우의 수이다. 🔸 코드 🔸 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { pu..