Development/PS (44) 썸네일형 리스트형 [PS] 백준 18870 좌표 압축 java 풀이 18870번: 좌표 압축 (acmicpc.net)초기 문제 접근일단 문제 이해부터가 어려워서 질문 게시판을 찾아보니,그냥 이 배열 중 자기보다 낮은 원소의 개수를 출력하는 것 이었음근데 최대 N이 1,000,000 이니까 이중 for 문 쓰면 무조건 터질 것 같음정렬하고 하나하나 비교하나..?조금 찾아보니 이진 탐색을 사용하면 된다고 나와있음GPT의 문제 접근하지만 단순히 Map 사용으로 문제를 해결할 수 있었음각 순위를 표시할 rank = 0을 선언함정렬한 배열을 첫 번째 인덱스부터 순회함Map 안에 현재 순회하는 값이 없다면 새로 삽입 후 rank++결과적으로 숫자 별로 순위가 Map에 저장이 됨코드import java.io.BufferedReader;import java.io.IOException;.. [PS] 백준 가장 긴 바이토닉 부분 수열 java 풀이 11054번: 가장 긴 바이토닉 부분 수열 (acmicpc.net)처음 문제 접근DP 같이 생겼다.현재 값이 바이토닉 수열을 만족하면 dp = Math.max(dp[i - 1], dp[i]) + 1그런데 올라갔다가 내려오고, 다시 올라가려 하면 0부터 시작해야 하는데.. 이걸 어떻게..처음 대략 이렇게 코드를 짬 for (int i = 1; i arr[i]) { dp[i] = Math.max(dp[i - 1], dp[i]) + 1; } }문제 정답해결법은 올라갈 때와 내려갈 때를 따로 분리해서 DP 테이블을 만든다.근데 이게 왜 되는건지 몰랐는데, 123421 에서 가장 긴 부분은 1234 = 4이고 감소하는 부분은 421 3 이니까 결과적으로 답은 7 - 1(겹치는 부분인 4를 빼기 위함.. [PS] 백준 1766 문제집 java 풀이 1766번: 문제집 (acmicpc.net)처음 틀린 풀이와 코드배열을 만들어서 각 인덱스에 먼저 풀어야되는 문제 값을 넣고그 배열을 순회하면서 먼저 풀어야하는 문제가 있으면 먼저 출력,나중에 먼저 풀었던 문제는 순회에서 넘어감 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); int N = Integer.parseInt(st.nextToken()); int[] arr = new int[N + 1]; int numOfGood = Integer.parseInt(st.nextToken()); // 먼저풀어야함 나중.. [PS] 백준 영화감독 숌 java 풀이 1436번: 영화감독 숌 (acmicpc.net)처음 문제 접근15면 15666인데 16이면 16660이라고??이를 어떻게 구현하지??for 문을 n까지 돌리면서... 6이 나오면.. 자릿수를 바꾸고 거기서 다시 1을 더하는건가..정답보고 문제 이해666을 저장하는 변수를 하나 만들고1씩 더하면서 666을 포함하면 count + 1 count가 N과 같아지면 break나는 15666 을 어떻게 한 번에 16660 을 만드나를 해서 막혔는데..그냥 브루트포스로 15667, 15668,..., 16659,16660 이 때 + 1이런식으로 하는거였구나...한 번에 하지 말고 브루트 포스 방법을 잘 익혀야겠다고 느꼈다..코드import java.io.BufferedReader;import java.io.IOEx.. [PS] 프로그래머스 스타 수열 java 풀이 코딩테스트 연습 - 스타 수열 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr초기 문제 접근부분 수열이니까 백트래킹..?length가 6이면 2, 4, 6 으로 길이를 따져서 배열에 모든 조합의 수를 만들고..만들어진 조합으로 스타 수열인지 판별하는 메서드를 구현하면..? 현재 작성된 코드에서는 백트래킹을 사용하여 모든 가능한 부분 수열을 생성하려고 시도합니다. 그러나 이 방법은 매우 비효율적입니다. 특히 배열의 길이가 최대 500,000인 경우, 모든 부분 수열을 생성하고 확인하는 것은 시간 복잡도가 .. [PS] 백준 문자열 폭발 java 풀이 9935번: 문자열 폭발 (acmicpc.net)문제 접근문자열 길이가 1,000,000보다 작으니..nlogN 미만의 시간복잡도를 가지는 풀이를 해야하는 것인가? 문자열을 스택에 넣다가 폭발 문자열과 겹치기 시작하면 넣지말고?완전 일치하면 그 만큼 스택에서 빼고?그런데 빼고나서 다시 폭발 문자열이랑 일치하면 어떻게 검사하지? 다시 처음부터 검사하면 시간 복잡도가 늘어날텐데.. 문제 해결문자열을 하나하나 StringBuilder(sb)에 넣으면서sb의 크기가 폭발 문자열 길이보다 같거나 커지면sb 끝에서 폭발 문자열 길이만큼 뺀 인덱스부터 검사 시작모두 같으면 그 부분만큼 delete다시 1번부터 반복하면, 끝에서부터 폭발 문자열 길이만큼 되돌아가서 검사하기 때문에 중간에 문자열이 삭제되도 다시 검사하게.. [CT] 프로그래머스 2023 KAKAO BLIND RECURITMENT 택배 배달과 수거하기 java 풀이 코딩테스트 연습 - 택배 배달과 수거하기 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr풀다가 다른 사람 풀이를 보니 현타가 와서.. 작성하는 글.다른 사람 풀이class Solution { public long solution(int cap, int n, int[] deliveries, int[] pickups) { long answer = -1; int deliver = 0, pickup = 0; for(int i = n-1; i >= 0; i--){ .. [그리디] 백준 13904번 과제 java 풀이 https://www.acmicpc.net/problem/13904 푸는 법은 단순합니다. [마감 날짜, 점수] 배열을 저장하는 이중 배열 선언그리고 점수를 내림차순 정렬 한다날짜 별로 해결한 과제의 점수를 저장하는 배열 선언 이중 배열을 순회하면서 날짜 별로 가장 높은 점수를 3번에서 선언한 배열에 저장한다.import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.Arrays;import java.util.StringTokenizer;public class Main { public static void main(String[] args) throws Exception { BufferedReader .. 이전 1 2 3 4 5 6 다음