java 15

[백준] 하늘에서 별똥별이 빗발친다(14658) - java

문제 설명 :https://www.acmicpc.net/problem/14658 문제 요약 :주어진 좌표에서 여러 개의 별똥별이 떨어진다l * l 크기의 트램펄린을 설치하여 별똥별을 막을 수 있다.지면에 부딪치는 별똥별의 최소 개수 구하기 문제 풀이 시간 : 1시간문제 성공 여부 : 실패 접근 방법(실패) :떨어지는 별똥별의 위치에 집중먼저, 문제를 보면 확실하게 알 수 있는 사실이 있다.바로 엄청나게 큰 N,M의 크기와 l의 크기이다. 코테에 익숙하지 않은 사람도 N*M과 L*L로는 절대 접근하면 안 된다는 것을 알 수 있을 것이다. 그럼 관건은 최대 100개라는 아주 귀여운 K의 개수에 집중을 해야 한다. 각각의 별똥별이 떨어지는 위치에 집중을 해야한다. 근데 어떻게 함..? 바로 이 부분에서..

코테/백준 2025.05.29

[백준] 성냥개비(3687) - java

문제 설명 :https://www.acmicpc.net/problem/3687 문제 요약 :주어진 성냥개비를 모두 써서 만들 수 있는 가장 작은 수와, 가장 큰 수 구하기 문제 풀이 시간 : 1시간 30분문제 성공 여부 : 성공 접근 방법(성공) :1. 큰 수 구하기큰 수 구하기는 매우 간단하다.수의 크기를 늘리기 위해서 가장 쉬운 방법은 자릿수를 늘리는 방법이다. 1은 성냥 2개로 만들 수 있는 가장 큰 수이므로, n/2개의 1을 만들 수 있다.예를 들어, 9라는 수가 있으면 9/2 = 4 이므로 1111을 만들 수 있다.하지만, 이 경우 성냥개비가 1개가 남게 되고, 더 이상의 숫자를 만들 수 없다. 따라서, 성냥을 2개보다 더 사용해서 1이 아닌 다른 수를 만들어서 나머지 값이 없도록 만들어야 한..

코테/백준 2025.05.22

[프로그래머스] 주식가격 - java

문제 설명 :https://school.programmers.co.kr/learn/courses/30/lessons/42584 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 요약 :각각의 시간 단위에 대해, 현재 기준 주식가격이 하락하지 않는 기간 구하기 쉽게 말해서,[1, 2, 3, 2, 3]이라는 예가 있다.1초 시점에는 1원의 가치,2초 시점에는 2원의 가치,3초 시점에는 3원의 가치,4초 시점에는 2원의 가치,5초 시점에는 3원의 가치를 나타내는 배열이다. 1초 시점에는 1원이기에, 5초 시점까지 주식의 가치가 더 떨어지는 시점이 없다.따라서 1초 시점은 4초간 가격 하락이 없다. 3초 시점에서는 ..

[프로그래머스] 뒤에 있는 큰 수 찾기

문제 설명 :https://school.programmers.co.kr/learn/courses/30/lessons/154539 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 요약 :배열의 각각의 수에 대해, 더 큰 수 이면서 가장 가까운 수 구하기 문제 풀이 시간 : 20분문제 성공 여부 : 성공 접근 방법(실패) :배열의 뒤에서부터 접근뒤에서부터 가장 큰 수를 저장배열을 앞으로 탐색하며, 가장 큰 수와 비교가장 큰 수보다 클 경우, 더 큰 수는 뒤에 없기 때문에 -1가장 큰 수보다 작을 경우, 가장 큰 수 사이를 탐색하며 가장 가깝고 더 큰 수 찾기제한 사항이 최대 1,000,000까지라 5번 상황..

[프로그래머스] 섬 연결하기 - java

문제 설명 :https://school.programmers.co.kr/learn/courses/30/lessons/42861 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 요약 :최소 신장 트리 구하기 문제 풀이 시간 : 20분문제 성공 여부 : 성공 접근 방법(성공) :크루스칼 알고리즘을 사용하여 모든 간선을 pq에 저장pq에서 가장 작은 가중치의 사이클 유무를 확인 및 추가이처럼 정점과 가중치가 있는 간선들이 주어질 때, 최소 신장트리를 구하기 위해서 크루스칼과 프림 알고리즘을 사용할 수 있다. 제한사항이 여유로웠기에 둘 중 하나를 선택해서 사용하면 되었고, 가장 손에 익은 크루스칼 알고리즘..

[프로그래머스] 튜플 - java

문제 설명 :https://school.programmers.co.kr/learn/courses/30/lessons/64065 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 요약 :특정 튜플을 표현하는 집합이 담긴 문자열 s가 주어진다.s가 표현하는 튜플을 배열에 담아 반환 문제 풀이 시간 : 40분문제 성공 여부 : 성공 접근 방법(비이상적인 버전) :먼저 문제를 해결하는 방법은 매우 간단하다.{2}, {2,1}, {2,1,3} 이렇게 집합이 주어질 때, 가장 작은 집합{2}부터 다음으로 큰 집합에 처음으로 등장하는 수가 원본 튜플의 순서가 된다.쉽게 말해 2가 제일 처음 나왔으니 원본 튜플..

[프로그래머스] n^2 배열 자르기 - java

문제 설명 :https://school.programmers.co.kr/learn/courses/30/lessons/87390 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 요약 :n*n 이차원 배열에 대해 증가하는 테두리에 n 숫자로 채우는 배열 생성행 단위로 잘라내어 1차원 배열 제작left부터 right까지 잘라서 새로운 배열 반환 문제 풀이 시간 : 30분문제 성공 여부 : 성공 접근 방법(성공) :1 2 3 4 52 2 3 4 53 3 3 4 54 4 4 4 55 5 5 5 5위와 같은 배열 구조가 이어지는데, 특징을 하나 찾을 수 있다.바로 i번째 행보다 작거나 같은 열은 모두 i+1..

[프로그래머스] 연속 부분 수열 합의 개수 - java

문제 설명 :https://school.programmers.co.kr/learn/courses/30/lessons/131701 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 요약 :원형 수열에서 만들 수 있는 모든 연속 부분 수열의 합 구하기합으로 만들 수 있는 개수 구하기 문제 풀이 시간 : 20분문제 성공 여부 : 성공 접근 방법(성공) :수열의 최대 길이가 1000이므로 O(n)으로 풀이 가능따라서 각 인덱스에서 +a까지의 부분수열의 합을 구해주면 된다.해시 셋을 통해 중복을 제거해 준다. 좀 더 자세한 접근방법은 다음과 같다. 7 9 1 1 4라는 수열이 있을 경우,..

[프로그래머스] 이진 변환 반복하기 - java

문제 설명 :https://school.programmers.co.kr/learn/courses/30/lessons/70129 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 요약 :이진수의 1의 개수 구하기1의 개수를 이진수로 변환1,2 과정을 반복하며 변환횟수, 제거된 0의 개수 구하기 문제 풀이 시간 : 20분문제 성공 여부 : 성공  접근 방법(성공) :charAt()으로 문자열의 '1' 개수 파악1의 개수를 toBinaryString으로 이진수로 변환반복 전체 코드(성공) :class Solution { public int[] solution(String s) { int[..

[프로그래머스] 다음 큰 숫자 - java

문제 설명 :https://school.programmers.co.kr/learn/courses/30/lessons/12911 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 요약 :숫자 n보다 크면서 이진수로 변환했을 때 1의 갯수가 같은 수 구하기 문제 풀이 시간 : 10분문제 성공 여부 : 성공  접근 방법(성공) :n을 이진수로 변환1의 갯수 저장n+1을 반복하며 이진수로 변환해서 1의 개수가 같은지 비교 전체 코드(성공) :class Solution { public int solution(int n) { String N = Integer.toBinaryString(n); ..