반응형

전체 글 201

[백준] 15666 : N과 M(12) (JAVA)

https://www.acmicpc.net/problem/15666 [풀이과정]중복되는 부분을 어떻게 해결해야 하는지 고민하다가 시간이 오래 걸렸음.DFS로 재귀호출 시에 for문 시작 index를 이전 DFS와 같게 하되 배열[index]의 값이 다른 경우에만 값을 sb에 넣게 했다.이렇게 해야 중복 없는 수열이 나옴. [코드]import java.util.*;import java.lang.*;import java.io.*;/*N개 중 M개 고르기중복 가능오름차순*/class Main { static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); static StringBuilder sb = new Stri..

백준/DFS BFS 2025.03.24

[백준] 22869 : 징검다리 건너기 (JAVA)

https://www.acmicpc.net/problem/22869 [풀이과정]단순히 도달여부를 확인하기만 하면 되는 문제.O(N^2)이 2500만이어서 DFS로 풀었다가 시간초과가 발생했다. 단순히 N^2이 아닌 실제로 호출되는 함수가 컸던 부분이 원인이었음.DP를 이용해서 도달 가능한 부분만을 true로 삼아 경로를 확인하는 방식으로 호출 횟수를 줄임. [코드]import java.util.*;import java.lang.*;import java.io.*;/*사용하는 힘은 항상 양수.오른쪽으로 갈 때 사용해야 하는 힘이 K가 넘지 않을 때 이동 가능끝까지 도착이 되는지의 유무 계산*/class Main { static BufferedReader br = new BufferedReader(new..

알고리즘/DP 2025.03.24

[백준] 17140 : 이차원 배열과 연산 (JAVA)

https://www.acmicpc.net/problem/17140 [풀이과정]Node class가 Comparable 인터페이스를 상속하게 함.PriorityQueue를 사용해서 정렬해가며 배열 재구성 [코드]import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.HashMap;import java.util.Map;import java.util.PriorityQueue;import java.util.StringTokenizer;/*크기가 3X3인 배열 A1. R연산 : 배열 A의 모든 행에 대해 정렬 수행. 행의 개수 >= 열의 개수인 경우 적용2. C연산 : 배열 A..

백준/구현 2024.12.07

[프로그래머스] SELECT : 대장균들의 자식의 수 구하기

https://school.programmers.co.kr/learn/courses/30/lessons/299305 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr [풀이과정]COALESCE 메서드 사용.[코드]SELECT A.ID, COALESCE(COUNT(B.ID), 0) AS CHILD_COUNTFROM ECOLI_DATA A LEFT JOIN ECOLI_DATA B ON A.ID = B.PARENT_IDGROUP BY A.IDORDER BY A.ID;

[백준] 2668 : 숫자고르기 (JAVA)

https://www.acmicpc.net/problem/2668 [풀이과정]시작 index와 끝 배열값이 같으면 되는 문제다. (사이클) [코드]import java.util.*;import java.io.*;/*세로 두 줄, 가로로 N개의 표첫째 줄은 1, 2, 3, ..., N둘째 줄은 N이하의 정수첫째 줄에서 숫자를 뽑으면 뽑힌 정수들이 이루는 집합과뽑힌 정수들의 바로 밑의 둘째 줄에 들어있는 정수들이 이루는 집합이일치함정수를 최대한 많이 뽑는 방법을 찾기 */public class Main { static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); static StringBuilder sb = n..

백준/DFS BFS 2024.11.22

[프로그래머스] SELECT : 특정 물고기를 잡은 총 수 구하기

https://school.programmers.co.kr/learn/courses/30/lessons/298518 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr [풀이과정]JOIN, COUNT, USING [코드 1]SELECT COUNT(*) AS FISH_COUNTFROM FISH_INFO A JOIN FISH_NAME_INFO B ON A.FISH_TYPE = B.FISH_TYPEWHERE B.FISH_NAME IN ('BASS', 'SNAPPER'); [코드 2]SELECT COUNT(*) AS FISH_COUNTFROM FISH_INFO A JOIN FISH_NAME_INFO B USI..

[백준] 15989 : 1, 2, 3 더하기 4 (JAVA)

https://www.acmicpc.net/problem/15989 [풀이과정]DP[n][1] : 1로 끝나는 수식 개수 [1]1DP[1][1] = 1 [2]1+12DP[2][1] = 1DP[2][2] = 1 [3]1+1+11+23DP[3][1] = 1DP[3][2] = 1DP[3][3] = 1 [4]1+1+1+11+1+22+21+3DP[4][1] = 1DP[4][2] = 2 -> 1+1, 2 (DP[2][1], DP[2][2])DP[4][3] = 1 -> 1(DP[1][1])...[6]1+1+1+31+2+33+3DP[6][3] = DP[3][1] + DP[3][2] + DP[3][3] 점화식DP[i][1] = DP [i-1][1];DP[i][2] = DP[i-2][1] + DP[i-2][2];DP[i]..

알고리즘/DP 2024.11.20

[프로그래머스] SELECT : 조건에 맞는 개발자 찾기

https://school.programmers.co.kr/learn/courses/30/lessons/276034 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr [풀이과정]비트연산으로 0보다 큰 (해당하는 스킬을 가지고 있음) 조건으로 조인해주고Python이나 C# 스킬을 보유한 데이터만 출력 [코드]SELECT DISTINCT D.ID, D.EMAIL, D.FIRST_NAME, D.LAST_NAMEFROM DEVELOPERS D JOIN SKILLCODES S ON (D.SKILL_CODE & S.CODE) > 0WHERE S.NAME IN ('Python', 'C..

[백준] 15988 : 1, 2, 3 더하기 3 (JAVA)

https://www.acmicpc.net/problem/15988 [풀이과정]모듈러 연산의 분배법칙 : 처음부터 끝까지 모두 더하고 % 연산을 하기 == 더하는 중간중간 % 연산을 하기즉, (A+B+C...) % n == ((A%10) + (B%10) + (C%10) + ...) % n N이 3미만 일 때 고려DP[1], DP[2], DP[3]는 직접 초기화하기 때문에 값이 3보다 작으면 런타임에러 발생 [코드]import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;/*정수 n이 주어졌을 때, n을 1, 2, 3의 합으로 나타내는 방법의 수를 구하는 프로그램을 작성 */public class Mai..

알고리즘/DP 2024.11.19

[프로그래머스] SELECT : 업그레이드 된 아이템 구하기

https://school.programmers.co.kr/learn/courses/30/lessons/273711 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr [풀이과정]희귀도가 'RARE'인 PARENT_ITEM_ID같은 ITEM_ID를 기준으로 INNER JOIN한 테이블 [코드]SELECT T.ITEM_ID, I.ITEM_NAME, I.RARITYFROM ITEM_TREE TJOIN ITEM_INFO I ON T.ITEM_ID = I.ITEM_IDWHERE T.PARENT_ITEM_ID IN ( SELECT ITEM_ID FROM ITE..

반응형