반응형

전체 글 188

[백준] 16637 : 괄호 추가하기 (JAVA)

https://www.acmicpc.net/problem/16637 [풀이과정]리스트 두 개를 사용해서 괄호 있는 계산, 없는 계산 나눠서 DFS로 풀었다. [코드]import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.ArrayList;import java.util.StringTokenizer;/*길이가 N. 정수, 연산자로 이루어져 있음.연산자 우선순위는 모두 동일함.단, 괄호 안의 식은 먼저 계산해야 하고 중첩된 괄호는 사용할 수 없음괄호를 추가해 만들 수 있는 식의 결과의 최댓값 구하기 */public class Main { static BufferedRea..

백준/DFS BFS 2024.11.15

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

https://www.acmicpc.net/problem/12101 [풀이과정]정수 4를 1,2,3의 합으로 나타내는 7가지 방법을 사전순으로 정렬 1. 1+1+1+12. 1+1+23. 1+2+14. 1+35. 2+1+16. 2+27. 3+11을 만드는 경우 12를 만드는 경우 1+1 / 23을 만드는 경우 1+1+1 / 1+2 / 2+1 / 34를 만드는 경우1+31+1+22+21+1+1+11+2+12+1+13+1i = 1, 2, 3n-i엔 +i를 끝에 붙여주기.[코드]paimport java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.ArrayList;import java.u..

알고리즘/DP 2024.11.14

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

https://www.acmicpc.net/problem/9095 [풀이과정]점화식 -> DP[n] = DP[n-1] + DP[n-2] + DP[n-3]; (n >= 4)DP[1] = 1, DP[2] = 2, DP[3] = 4 임.  1) 1을 만드는 경우1 2) 2를 만드는 경우1 + 12 3) 3을 만드는 경우1 + 1 + 11 + 22 + 13 4) 4를 만드는 경우 -> DP[1] + DP[2] + DP[3]1 + 31 + 1 + 22 + 21 + 1 + 1 + 11 + 2 + 12 + 1 + 13 + 1 5) 5를 만드는 경우 -> DP[2] + DP[3] + DP[4]1 + 1 + 12 + 11 + 1 + 1 + 11 + 2 + 12 + 1 + 13 + 11 + 3 + 11 + 1 + 2 + ..

알고리즘/DP 2024.11.13

[백준] 1477 : 휴게소 세우기 (JAVA)

https://www.acmicpc.net/problem/1477 [풀이과정]1. 휴게소를 세워서 길이를 비교해 최솟값을 갱신하는 방식2. 적당한 길이로 휴게소를 배치해보고 M개를 충족하는 것 중 가장 작은 값 찾기 2번의 방식으로 답을 구성했고, 이분탐색 방식을 적용했다. [시간복잡도]1. 오름차순 정렬 : O(N logN)2. 이진탐색(needIncreaseDistance) : O(N logL)2-1. 이진탐색 : O(log L)2-2. needIncreaseDistance : O(N) 총 O(N logN) + O(N logL) [코드]import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;imp..

백준/이분탐색 2024.11.13

[백준] 2240 : 자두 나무 (JAVA)

https://www.acmicpc.net/problem/2240 [풀이과정]3차원 DP로 풀었다.for( 1 -> T ){ for( 1 -> W+1 ){ 매초마다 해당 시간에 떨어지는 열매 1. 1번 나무로 떨어질 때 1-1. 해당 위치로 이동해서 1-2. 그대로 2. 2번 나무로 떨어질 때 2-1. 해당 위치로 이동해서 2-2. 그대로 }}  *W+2로 초기화한 이유는 w = W+1일 때, W번 이동했을 경우를 계산할 수 있기 때문이다. [코드]import java.io.*;import java.util.StringTokenizer;/*매 초마다 두 개의 나무 중 하나의 나무에서 자두가..

알고리즘/DP 2024.11.11

[프로그래머스] SELECT : 특정 형질을 가지는 대장균 찾기

https://school.programmers.co.kr/learn/courses/30/lessons/301646 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr [풀이과정]비트연산 1) 1 2) 1 3) 1  &연산 -> 1과 1일 때만 1을 반환하기 때문에-> 0이면 해당 형질이 없다는 뜻 & 0이 아니면 해당 형질이 있다는 뜻 반환은 2진수 값으로 되기 때문에 0이 아니다라고 설정을 해야 제대로 실행됨. [코드]SELECT COUNT(ID) AS COUNTFROM ECOLI_DATAWHERE (GENOTYPE & (1

[프로그래머스] SELECT : 잔챙이 잡은 수 구하기

https://school.programmers.co.kr/learn/courses/30/lessons/293258 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr [풀이과정]IS NULL10cm 이하면 NULL로 표기된다고 하는 조건을 못 봐서 10이하인 조건을 추가했더니 100점 통과가 안됐다. [코드]SELECT COUNT(ID) AS FISH_COUNTFROM FISH_INFOWHERE LENGTH IS NULL;

[프로그래머스] SELECT : Python 개발자 찾기

https://school.programmers.co.kr/learn/courses/30/lessons/276013 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr [풀이과정]OR 조건, 오름차순 정렬 [코드]SELECT ID, EMAIL, FIRST_NAME, LAST_NAMEFROM DEVELOPER_INFOSWHERE SKILL_1 = 'Python' || SKILL_2 = 'Python' || SKILL_3 = 'Python'ORDER BY ID;SELECT ID, EMAIL, FIRST_NAME, LAST_NAMEFROM DEVELOPER_INFOSWHERE 'Python' IN (SKILL_1..

[백준] 2660 : 회장 뽑기 (JAVA)

https://www.acmicpc.net/problem/2660 [풀이과정]문제 이해가 힘들었다. 그래프로 바꿔 생각하면직접 친구 = 거리 1친구의 친구 = 거리 2이런 식이었다.각각의 후보(노드)는 가장 먼 친구의 점수(거리)이고회장은 그 중 점수가 가장 작은 후보이다.이때 같은 점수를 가진 모든 후보를 출력해야 했음. 모든 정점 쌍 간의 최단 거리를 구해야 했기 때문에 플로이드 와샬 알고리즘을 사용했다. [코드]import java.io.*;import java.util.StringTokenizer;/*각 회원은 다른 회원들과 가까운 정도에 따라 점수를 받게 됨.다른 모든 회원과 친구이면 1점다른 모든 회원과 친구 || 친구의 친구이면 2점다른 모든 회원과 친구 || 친구의 친구 ||친구의 친구의 ..

반응형