분류 전체보기318 ★ 백준/2630 색종이 만들기 / 부분합 색종이 만들기 성공 시간 제한메모리 제한제출정답맞힌 사람정답 비율 1 초 128 MB 28580 19395 15737 68.859% 문제 아래 과 같이 여러개의 정사각형칸들로 이루어진 정사각형 모양의 종이가 주어져 있고, 각 정사각형들은 하얀색으로 칠해져 있거나 파란색으로 칠해져 있다. 주어진 종이를 일정한 규칙에 따라 잘라서 다양한 크기를 가진 정사각형 모양의 하얀색 또는 파란색 색종이를 만들려고 한다. 전체 종이의 크기가 N×N(N=2k, k는 1 이상 7 이하의 자연수) 이라면 종이를 자르는 규칙은 다음과 같다. 전체 종이가 모두 같은 색으로 칠해져 있지 않으면 가로와 세로로 중간 부분을 잘라서 의 I, II, III, IV와 같이 똑같은 크기의 네 개의 N/2 × N/2색종이로 나눈다. 나누어진 .. 자바/알고리즘 문제 풀이 2022. 12. 21. 백준/10816 숫자 카드 2 / 이진탐색,이분탐색,Map [미완] 숫자 카드 2 시간 제한메모리 제한제출정답맞힌 사람정답 비율 1 초 256 MB 90367 33508 24020 36.238% 문제 숫자 카드는 정수 하나가 적혀져 있는 카드이다. 상근이는 숫자 카드 N개를 가지고 있다. 정수 M개가 주어졌을 때, 이 수가 적혀있는 숫자 카드를 상근이가 몇 개 가지고 있는지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,000,000보다 작거나 같다. 셋째 줄에는 M(1 ≤ M ≤ 500,000)이 주어진다. 넷째 줄에는 상근이가 몇 개 가지고 있는 숫자 카드인지 .. 자바/알고리즘 문제 풀이 2022. 12. 20. 백준/1920 수 찾기 /이분탐색 ,이진탐색, Map 수 찾기 시간 제한메모리 제한제출정답맞힌 사람정답 비율 1 초 128 MB 174862 52356 34749 29.856% 문제 N개의 정수 A[1], A[2], …, A[N]이 주어져 있을 때, 이 안에 X라는 정수가 존재하는지 알아내는 프로그램을 작성하시오. 입력 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들이 A안에 존재하는지 알아내면 된다. 모든 정수의 범위는 -231 보다 크거나 같고 231보다 작다. 출력 M개의 줄에 답을 출력한다. 존재하면 1을, 존재하지 않으면 0을 출력한다. 예제 입력 1 복.. 자바/알고리즘 문제 풀이 2022. 12. 20. [Java] DFS, BFS DFS(깊이 우선 탐색, Depth-First Search) 루트노드(혹은 다른 임의의 노드)에서 다음 분기(Branch)로 넘어가기 전에, 해당 분기(Branch)를 모두 탐색 하는 방법 탐색 후에는 다시 원점으로 돌아가 다른 분기를 탐색합니다. 특징 1. 자기 자신을 호출하는 순환 알고리즘의 형태를 지닌다. (재귀 or 스택으로 구현) ->조합에서 뽑고, 재귀적으로 호출하고, 뽑은거 취소하는것처럼 , 자기 자신을 호출함으로서 해당 수를 뽑은 경우의 모든경우를 탐색한다. 2.그래프탐색인 경우 어떤 노드를 방문했었는지 여부를 반드시 검사해야한다. ( 검사하지않을경우 무한루프에 빠질수 있다.) ex) visited[index] = true , if(!visited[index]) -> 일반 조합에서 중복뽑기.. 자바/알고리즘 2022. 12. 20. [Java] Stack, 스택 Stack ~을 쌓다는 의미, 벽돌을 쌓는다 생각했을때 가장 먼저들어온 벽돌은 가장 아래에 위치할 것이고, 가장 나중에 들어온 벽돌은 가장 위에 위치할 것이다. 그리고 다시 이 벽돌들을 치운다고 생각할때 , 맨위에있는 벽돌부터 빼낼것이다. 이렇게 먼저 들어온 데이터가 마지막에 나가는 구조를 후입선출(LIFO = Last in First out) 또는 선입후출(FILO = First in Last out)이라고 한다. (둘 다 같은 말이다.) search() 메소드 스택 내부 배열의 인덱스 값이 아니라 스택의 '상단으로부터 몇 번째에 위치 하는지'를 반환하는 것이다. 즉, 거리 개념이라고 보면 된다. Stack a = new Stack(); a.add(1); a.add(2); a.add(3); bw.wri.. 자바/자료구조 2022. 12. 20. ★ 백준/1931 회의실 배정 / 그리디 알고리즘 회의실 배정 시간 제한메모리 제한제출정답맞힌 사람정답 비율 2 초 128 MB 148927 46805 32996 29.672% 문제 한 개의 회의실이 있는데 이를 사용하고자 하는 N개의 회의에 대하여 회의실 사용표를 만들려고 한다. 각 회의 I에 대해 시작시간과 끝나는 시간이 주어져 있고, 각 회의가 겹치지 않게 하면서 회의실을 사용할 수 있는 회의의 최대 개수를 찾아보자. 단, 회의는 한번 시작하면 중간에 중단될 수 없으며 한 회의가 끝나는 것과 동시에 다음 회의가 시작될 수 있다. 회의의 시작시간과 끝나는 시간이 같을 수도 있다. 이 경우에는 시작하자마자 끝나는 것으로 생각하면 된다. 입력 첫째 줄에 회의의 수 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N+1 줄까지 각 회의의 정보가.. 자바/알고리즘 문제 풀이 2022. 12. 20. 백준/11047 동전 / 그리디 알고리즘 동전 0 시간 제한메모리 제한제출정답맞힌 사람정답 비율 1 초 256 MB 102637 53820 41641 51.806% 문제 준규가 가지고 있는 동전은 총 N종류이고, 각각의 동전을 매우 많이 가지고 있다. 동전을 적절히 사용해서 그 가치의 합을 K로 만들려고 한다. 이때 필요한 동전 개수의 최솟값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) 출력 첫째 줄에 K원을 만드는데 필요한 동전 개수의 최솟값을 출력한다. 예제 입력 1 복사 10 4200 1 5 .. 자바/알고리즘 문제 풀이 2022. 12. 20. [Java] 그리디 알고리즘 (Greedy Algorithm) , 탐욕 알고리즘 그리디 알고리즘 Greedy(탐욕) 알고리즘은 매 번의 선택에서 가장 좋아보이는 선택을 하여 적절한 답을 찾아간다 예를 들어 다음과 같이 서울에서 부산을 가는 경로가 있다고 해보자. 서울-대전을 가는 경로중 가장 빠른 경로인 80분 걸리는 경로를 선택하고 대전-부산을 가는 경로중 가장 빠른 150분 걸리는 경로를 선택하여 총 230분이 걸리는 경로가 가장 빠른 경로일것이다. 이렇게 각 단계별로 최선의 선택지를 선택하는것이 그리디 알고리즘이다. 하지만 그리디 알고리즘은 항상 최적의 해를 도출해내는것이 아니다. 조건이 필요하다. 아래의 예시를 보자. 똑같이 부산을 목표로 가장 짧은 소요시간을 구해보자. 서울에서 원주로 가는 경로가 생긴 예시이다. 서울-대전 , 서울-원주를 보니 가장 적은 소요시간인 80분을.. 자바/알고리즘 2022. 12. 20. 백준/16139 인간-컴퓨터 상호작용 / 다이나믹프로그래밍,메모이제이션 인간-컴퓨터 상호작용 서브태스크 시간 제한메모리 제한제출정답맞힌 사람정답 비율 1 초 (추가 시간 없음) 256 MB 10013 2690 2216 29.606% 문제 승재는 인간-컴퓨터 상호작용에서 생체공학 설계를 공부하다가 키보드 자판이 실용적인지 궁금해졌다. 이를 알아보기 위해 승재는 다음과 같은 생각을 했다. '문자열에서 특정 알파벳이 몇 번 나타나는지 알아봐서 자주 나타나는 알파벳이 중지나 검지 위치에 오는 알파벳인지 확인하면 실용적인지 확인할 수 있을 것이다.' 승재를 도와 특정 문자열 S$S$, 특정 알파벳 α$\alpha$와 문자열의 구간 [l,r]$[l,r]$이 주어지면 S$S$의 l$l$번째 문자부터 r$r$번째 문자 사이에 α$\alpha$가 몇 번 나타나는지 구하는 프로그램을 작성하여.. 자바/알고리즘 문제 풀이 2022. 12. 20. ★ 백준/2559 수열 / 누적합,로직의 최악의 연산횟수 제대로 구하기 수열 시간 제한메모리 제한제출정답맞힌 사람정답 비율 1 초 128 MB 26858 9862 8013 36.378% 문제 매일 아침 9시에 학교에서 측정한 온도가 어떤 정수의 수열로 주어졌을 때, 연속적인 며칠 동안의 온도의 합이 가장 큰 값을 알아보고자 한다. 예를 들어, 아래와 같이 10일 간의 온도가 주어졌을 때, 3 -2 -4 -9 0 3 7 13 8 -3 모든 연속적인 이틀간의 온도의 합은 아래와 같다. 이때, 온도의 합이 가장 큰 값은 21이다. 또 다른 예로 위와 같은 온도가 주어졌을 때, 모든 연속적인 5일 간의 온도의 합은 아래와 같으며, 이때, 온도의 합이 가장 큰 값은 31이다. 매일 측정한 온도가 정수의 수열로 주어졌을 때, 연속적인 며칠 동안의 온도의 합이 가장 큰 값을 계산하는 프.. 자바/알고리즘 문제 풀이 2022. 12. 19. 백준/11659 구간 합 구하기4 / 다이나믹 프로그래밍 구간 합 구하기 4 시간 제한메모리 제한제출정답맞힌 사람정답 비율 1 초 256 MB 54061 23292 18031 41.591% 문제 수 N개가 주어졌을 때, i번째 수부터 j번째 수까지 합을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j가 주어진다. 출력 총 M개의 줄에 입력으로 주어진 i번째 수부터 j번째 수까지 합을 출력한다. 제한 1 ≤ N ≤ 100,000 1 ≤ M ≤ 100,000 1 ≤ i ≤ j ≤ N 예제 입력 1 복사 5 3 5 4 3 2 1 1 3 2 4 5 5 예제 출력 1 복사 12 .. 자바/알고리즘 문제 풀이 2022. 12. 19. ★ 백준/1149 RGB거리 / 다이나믹 프로그래밍 ,메모이제이션 RGB거리 성공 시간 제한메모리 제한제출정답맞힌 사람정답 비율 0.5 초 (추가 시간 없음) 128 MB 88412 46869 34983 52.386% 문제 RGB거리에는 집이 N개 있다. 거리는 선분으로 나타낼 수 있고, 1번 집부터 N번 집이 순서대로 있다. 집은 빨강, 초록, 파랑 중 하나의 색으로 칠해야 한다. 각각의 집을 빨강, 초록, 파랑으로 칠하는 비용이 주어졌을 때, 아래 규칙을 만족하면서 모든 집을 칠하는 비용의 최솟값을 구해보자. 1번 집의 색은 2번 집의 색과 같지 않아야 한다. N번 집의 색은 N-1번 집의 색과 같지 않아야 한다. i(2 ≤ i ≤ N-1)번 집의 색은 i-1번, i+1번 집의 색과 같지 않아야 한다. 입력 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진.. 자바/알고리즘 문제 풀이 2022. 12. 19. 이전 1 ··· 15 16 17 18 19 20 21 ··· 27 다음