분류 전체보기 (88) 썸네일형 리스트형 백준 19953 <영재의 산책> 이 문제는 규칙을 잘 찾는 것이 중요한 문제이다. 초기의 v 값에 따라 반복되는 숫자가 달라진다. 예를 들어 초기값이 1이고 m이 1 인경우 이렇게 time=4번 만에 같은 값을 가지게 되고 초기값 13이고 m=3 인경우에 time=5번 만에 같은 값을 가지게 된다. 그러므로 time가 4와 5에 따라 계산을 다르게 해줘야 한다. 그래서 확인 해주기 위해서 ArrayList를 북 동 남 서 이렇게 4개를 만들어서 값을 넣어주면서 같을 때까지 진행하였다. 여기서 value는 몇 번 반복되는가를 나타내는 것으로 fv에 time값을 넣어주고 만약에 time이 5였다면 맨 초기의 속력 값을 따로 해줘야 하기 때문에 돌려야 하는 t값을 -1 해준 값으로 value를 구해준다. 반복되는 횟수만큼 이동을 진행한다. .. 백준 1744 <수묶기> 이 문제의 핵심은 어떻게 수를 묶을 것인가이다. 핵심을 파악하자면 음수는 음수끼리 양수는 양수끼리 묶는 게 결괏값이 더 커진다. 문제 접근 방법 음수는 음수끼리 양수는 양수 끼리 묶는다 가장 작은 음수는 그 다음 작은 음수와 묶는 것이 크고, 음수에 0을 곱하면 0 이 되기 때문에 이것 또한 작다. 양수는 가작 큰 양수와 그 다음 큰 양수를 묶으면 값이 커진다. 하지만 0을 곱하면 안 된다. 또한 1을 곱하면 자기 자신이기 때문에 1은 곱해주지 않고 그냥 더한다. 그래서 정렬을 해서 음수는 앞에서부터 양수는 뒤에서부터 계산을 해주면 된다. 음수 계산 방법 양수 계산 방법 2 1 2 답: 3 5 1 1 1 1 1 답: 5 이 반례들을 통해 1은 양수랑은 곱하지 않는것이 좋다는것을 이해했다!! 전체 코드 더.. 백준 19952 <인성 문제있어??> 잘 읽어보면 간단한 DFS 또는 BFS문제이다. 처음에 우선순위 큐로 풀어야 되나 라는 고민을 잠시 했지만 높이의 차만큼 에너지가 감소되는 것이 아니기 때문에 그냥 Queue로도 풀이가 가능하다. 전체 코드 더보기 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; import java.util.StringTokenizer; public class Main{ public static class car{ int x; int y; int energe; public car(int x, int y, int.. 백준 2589 <보물섬> 일단 최단거리를 찾는 문제이기 때문에 BFS를 사용하는 것은 확실한 문제 그러나 가장 멀리 떨어진 지점을 어떻게 선택할까?라는 고민을 했던 문제. 일방적으로는 가장 끝지점을 고르면 되지 않을까? 하지만 예외상황이 있을 수 있음! 그렇기 때문에 생각한 방법은 완전 탐색으로 모든 지점에서 돌려보는 것!!! 시간 초과는 50*50이 맵 크기 이므로 50*50*50*50=6250000 625만 이므로 절대 터지지 않는다!! 그러므로 답은 bfs를 모든 지점에서 돌려 보는 것! 문제 풀이 1. L인 모든 좌표에서 BFS를 해서 가장 긴 길이를 리턴한다. 끝?! 좌표 x, y와 길이를 나타낼 d를 담을 클래스를 선언한다. BFS에서 핵심인 부분 뒤에 남은 큐가 없다는 것은 가장 긴 지점이므로 그 값을 저장한다. w.. 백준 4811 <알약> 오랜만에 DP문제를 풀어보았다. 딱 봐도 총길이가 2N이면 30개를 한다고 치면 3814986502092304번... 당연히 시간 초과가 나는 문제 이런 문제는 일반적으로 DP라고 보면된다. 이 문제의 dp는 언제가 끝나는 조건인가? 당연히 한 조각 전체 알약이 없거나 한 조각이 하나와 반 조각이 없을 경우이다! 그리고 차곡차곡 dp에 값을 저장해서 값이 있다면 그 값을 return~하는 그런 문제이다! 문제 풀이 dp [][] 배열을 생성하고 현재 find 함수에 (알약-1,1) 백준 14696 <딱지놀이> 각각의 라운드마다 A B 배열을 만들고 개수를 확인하면서 출력하는 문제이다. 전체 코드 더보기 package asd; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class sad { public static void main(String[] args) throws IOException { int n,k; BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); n=Integer.parseInt(br.readLine()); for(int .. 백준 13300 <방배정> 이 문제의 핵심은 각 학년의 성별에 따라 k로 몇 번 나눠지고 나머지가 있는지 여부를 판단하는 문제이다. 전체 코드 더보기 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main{ public static void main(String[] args) throws IOException { int n,k,result=0; int map[][]=new int[2][7]; BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); Stri.. 백준 10163 <색종이> 이전의 비슷한 문제들을 IM에서 많이 본 것 같다. IM문제는 대부분 이중 for문과 그 값을 저장하는 문제 위주로 내는 것 같다. 문제 풀이 각각의 시작점에서 높이와 너비만큼 이차원 map에 자신의 색종이 넘버를 입력 다음 색종이가 겹치게 된다면 그대로 덮어씌운다. 색종이 수만큼 map에 다 입력했다면 map [][]에 적힌 번호의 결과 값을 증가시킨다. 전체 코드 더보기 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main{ public static void main(String[] args) th.. 백준 1938 <통나무 옮기기> 시뮬레이션 중에 삼성 A형에 나올만한 시뮬레이션이었다. 이문제의 중점을 어떤 것을 기준으로 어떻게 방문 처리를 하냐인 것이다. 해결 방법은 중점을 가지고 가로,세로,를 방문처리로 판단해주는 것이다. 풀이 방법 통나무 중앙을 기준으로 가로 세로를 판정 가로, 세로 각각 위,아래,좌,우 갈 수 있는지 확인 후 이동 후 큐에 넣기 가로, 세로 각각 중앙점을 기준으로 8방향 즉 대각선 까지 검사 후 회전 가능하면 회전 후 큐에 넣기 계속해서 시뮬레이션 진행~ 중앙점과 이동횟수 가로, 세로인지 판단할 변수를 class에 지정 그림처럼 맨끝의 지점을 찾은 뒤 가운뎃점을 찾는 과정 BFS에서 통나무가 위치할 통나무와 일치한지 찾으면 return~ 그림처럼 통나무가 세로로 되어있다면 중앙점에서 2위로 이동한 지점 검사.. 백준 2559 <수열> 투 포인터의 개념을 이용하여 접근이 가능한 문제!! 이 문제에서 조금 응용을 해 k일의 온도 합을 구하는 것이 T번 있다고 가정하면 인덱스 트리를 이용하게 되는 문제! 문제 풀이 처음 K수만큼을 sum 값에 더한다. start를 0 finish를 k로 두고 하나씩 증가하며 finish가 n이 될 때까지 진행한다. sum값에 finish를 더하고 start를 빼주고 이렇게 최대를 구한다 전체 코드 더보기 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Collections; import java.util.Str.. 이전 1 2 3 4 5 6 7 ··· 9 다음