전체 글

🍀
📖 문제   프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr   💡  풀이 방식• BFS필요 자료구조- 인접 리스트- 1차원 최단 거리 배열 (destination으로부터의 최단 거리를 나타냄) 1. 인접 리스트 그래프 graph에 길 정보를 저장한다.2. 최단 거리 배열을 모두 최댓값으로 저장한다.3. 시작점 destination부터 BFS를 진행하며 최단 거리 배열을 채운다.for(int next : graph[now]) { if(dist[now] + 1    🔺 코드1. List>를 활용한 풀이123456789101..
📖 문제 https://www.acmicpc.net/problem/10709   💡  풀이 방식• 구현1. 2차원 배열에 구역 값을 입력받는다.2. 각 행을 돌며 각 (i,j)가 몇 분 뒤 처음으로 하늘에 구름이 오는지를 확인한다.  - 현재 i번째 행의 j번째 열에 구름이 있는 경우> dist[i][j] = 0, 현재 열 j를 변수로 저장한다.  - 현재 i번째 행의 j번째 열에 구름이 없는 경우> 앞 열에서 구름이 있었다면, (현재 열 - 가장 가까운 구름 열)의 값을 dist[i][j]에 저장한다.  🔺 코드1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556im..
📖 문제 https://www.acmicpc.net/problem/14002   💡  풀이 방식• LIS (DP) LIS 배열을 만든다.이 때 String 배열을 숫자의 수만큼 만들고, 최장 길이 수열이 만들어졌을 때 수열 정보를 업데이트한다.   🔺 코드1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950import java.util.*;import java.io.*; public class Main {    static int N;    static int[] A, dp;    static String[] str;        public static void main(String[] ..
📖 문제 https://www.acmicpc.net/problem/2118   💡  풀이 방식• 누적합, 투 포인터 N가지 지점 中 2가지를 뽑는 경우의 수는 N * (N-1)/2이고, 이러면 약 12억 5천만을 넘으므로 시간 초과가 발생한다.그러므로 투 포인터로 두 지점을 뽑는다. 그리고 나서 정방향 / 역방향으로 진행하며 최대 거리를 구한다.   🔺 코드12345678910111213141516171819202122232425262728293031323334353637383940414243import java.util.*;import java.io.*; public class Main {    public static void main(String[] args) throws IOException..
📖 문제 https://www.acmicpc.net/problem/2870   💡  풀이 방식• 문자열 , 파싱   🔺 코드1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950import java.util.*;import java.io.*;import java.math.*; public class Main {    static int N;    static ListBigInteger> list = new ArrayList>();        public static void main(String[] args) throws IOException {        BufferedReader br..
📖 문제 https://www.acmicpc.net/problem/3474   💡  풀이 방식• 정수 10은 2와 5로 만들 수 있다.따라서 10을 만들 수 있는 갯수는 N/2의 제곱, N/5의 제곱 중 최솟값이다.  🔺 코드1234567891011121314151617181920212223242526272829import java.util.*;import java.io.*; public class Main {    static int T;    static StringBuilder sb = new StringBuilder();        public static void main(String[] args) throws IOException {        BufferedReader br = ne..
📖 문제 https://www.acmicpc.net/problem/7490   💡  풀이 방식• 브루트포스 + 백트래킹 + 문자열 [DFS 함수]- 인자: now - 현재 탐색 중인 숫자의 위치 (1부터 시작) / num - 현재 숫자 / sign - 현재 숫자의 부호 (1이면 +, -1이면 -) / sum - 현재까지의 합계 / str - 현재까지의 연산식- 종료 조건: 수열의 맨 마지막 숫자 N에 도달했을 경우- 부호가 [공백이냐/+냐/-냐] 에 따라 재귀함수를 호출한다.   🔺 코드1234567891011121314151617181920212223242526272829303132333435import java.util.*;import java.io.*; public class Main {   ..
📖 문제 https://www.acmicpc.net/problem/16945   💡  풀이 방식• 백트래킹1. 3x3 배열에 모든 숫자 1-9를 중복되지 않게 나열한다.2. 나열 후, 해당 배열이 매직 스퀘어( = 가로,세로, /, \의 합이 모두15인지) 확인한다.3. 매직 스퀘어인 경우, 최솟값을 갱신해 정답을 구한다.   🔺 코드1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071import java.util.*;import java.io.*; public class Main {    static int[][]..
📖 문제 https://www.acmicpc.net/problem/15886   💡  풀이 방식• 문자열E와 W가 붙어있는 문자열 EW의 갯수를 구하면 된다...  🔺 코드1234567891011121314151617181920212223import java.util.*;import java.io.*; public class Main {    static int N, cnt;    static char[] map;        public static void main(String[] args) throws IOException {        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));        N = In..
imname1am
한 페이지가 될 수 있게 🌟