문제 https://www.acmicpc.net/problem/11399 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net 풀이코드 package com.algorithm._00_._Current; import java.util.Arrays; import java.util.Scanner; import java.util.stream.IntStream; /** * @Date 2022/04/14 * @URL https://www.acmicpc.net/problem/11399 */ public class A11399_ATM { static int N..
문제 https://www.acmicpc.net/problem/2559 2559번: 수열 첫째 줄에는 두 개의 정수 N과 K가 한 개의 공백을 사이에 두고 순서대로 주어진다. 첫 번째 정수 N은 온도를 측정한 전체 날짜의 수이다. N은 2 이상 100,000 이하이다. 두 번째 정수 K는 합을 구하기 www.acmicpc.net 풀이코드 (실패 - 시간초과) package com.algorithm._10_투포인터; import java.util.Scanner; import java.util.stream.IntStream; /** * @Date 2022/04/10 * @URL https://www.acmicpc.net/problem/2559 */ public class A2559_수열 { static in..
문제 https://www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net 풀이코드 package com.algorithm._05_BFS; import java.util.*; /** * @Date 2022/03/31 * @URL https://www.acmicpc.net/problem/7576 */ public class A7576_토마토 { static int[][] graph; static int N; static int M; static Lis..
문제 https://programmers.co.kr/learn/courses/30/lessons/42578 코딩테스트 연습 - 위장 programmers.co.kr 풀이코드 package com.algorithm._00_._Current; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * @Date 2022/03/27 * @URL https://programmers.co.kr/learn/courses/30/lessons/42578 */ public class P42578_위장 { Map map = new HashMap(); public static void main(S..
문제 https://programmers.co.kr/learn/courses/30/lessons/42885 코딩테스트 연습 - 구명보트 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 5 programmers.co.kr 풀이코드 package com.algorithm._01_그리디_구현; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; import java.util.stream.Collectors; impo..
문제 https://programmers.co.kr/learn/courses/30/lessons/77484 코딩테스트 연습 - 로또의 최고 순위와 최저 순위 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호 programmers.co.kr 풀이코드 package com.algorithm._00_._Current; import java.util.Arrays; import java.util.HashMap; import java.util.Map; /** * @Date 2022/03/21 * @URL https://programmers.co.kr/lea..
문제 https://www.acmicpc.net/problem/1238 1238번: 파티 첫째 줄에 N(1 ≤ N ≤ 1,000), M(1 ≤ M ≤ 10,000), X가 공백으로 구분되어 입력된다. 두 번째 줄부터 M+1번째 줄까지 i번째 도로의 시작점, 끝점, 그리고 이 도로를 지나는데 필요한 소요시간 Ti가 들어 www.acmicpc.net 다익스트라 알고리즘 https://devfunny.tistory.com/641?category=905091 최단 경로 알고리즘 - 다익스트라 알고리즘 우선순위 큐 사용 버전 들어가기전 기본 다익스트라 알고리즘에 대해 먼저 공부하자. https://devfunny.tistory.com/638 최단 경로 알고리즘 - 다익스트라 알고리즘 기본 버전 최단 경로 알고리즘..
문제 https://www.acmicpc.net/problem/1439 1439번: 뒤집기 다솜이는 0과 1로만 이루어진 문자열 S를 가지고 있다. 다솜이는 이 문자열 S에 있는 모든 숫자를 전부 같게 만들려고 한다. 다솜이가 할 수 있는 행동은 S에서 연속된 하나 이상의 숫자를 잡고 모 www.acmicpc.net 풀이코드 package seohae.thiscodingtest.part03.Q03_StringReverse; import java.util.Scanner; /** * https://www.acmicpc.net/problem/1439 */ /* 0, 1로 만 이루어진 문자열 S 문자열 S의 모든 숫자를 같게만들자. S에서 연속된 하나 이상의 숫자를 잡고 모두 뒤집는것이다. 뒤집는 것은 1 ->..
문제 에너지를 효율적으로 사용하고자 화성 탐사 기계가 출발 지점에서 목표 지점까지 이동할때 항상 최적의 경로를 찾아야한다. N x N 크기의 2차원 배열에 각각의 칸을 지나기 위한 비용이 존재한다. 가장 왼쪽칸 [0][0] 에서 가장 오른쪽 아래칸 [N - 1][N - 1] 위치로 이동하는 최소비용을 출력하라. 화성탐사 기계는 특정한 위치에서 상하좌우 인접한 곳으로 1칸씩 이동할 수 있다. 풀이코드 package seohae.thiscodingtest.part03.Q39_MarsExploration; import java.util.*; /* - 구현 후 로직 디버깅 (distance) 5 5 4 3 9 1 3 2 7 의 경우 (1) [1000000000, 1000000000, 1000000000], [1..
문제 https://programmers.co.kr/learn/courses/30/lessons/60057 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문 programmers.co.kr 풀이코드 import java.util.ArrayList; import java.util.List; /* 문자열 압축 : 문자열에서 같은 값이 연속해서 나타나는 것을 그 문자의 개수와 반복되는 값으로 표현하여 더 짧은 문자열로 줄여서 표현 (예시) aabbaccc -> 2a2ba3c 앞의 a 개수 : 2 b 개수 : 2 a 개수 (1이므로 a) c ..
문제 N X M 크기의 금광이 있다. 금광은 1 X 1 크기의 칸으로 나누어져있으며, 각 칸은 특정한 크기의 금이 들어 있다. 채굴자는 첫번째 열부터 출발하여 금을 캐기 시작한다. 맨 처음에 첫번째 열의 어느 행에서든 출발이 가능하고, 이후에 m번에 걸쳐서 매번 오른쪽 위, 오른쪽, 오른쪽 아래 3가지 중 하나의 위치로 이동해야 한다. 결과적으로 채굴자가 얻을 수 있는 금의 최대 크기를 출력하라. (예시) 1 3 3 2 2 1 4 1 0 6 4 7 가장 왼쪽의 위치가 (1, 1)이고 가장 마지막의 위치를 (n, m)이라고 했을때 아래와 같다. (2, 1) (3, 2) (3, 3) (3, 4) 위치로 이동하면 총 19만큼 금의 최댓값으로 이동할 수 있다. 첫번째 열에서 (1,1) (2,1) (3,1) 의 ..
문제 https://programmers.co.kr/learn/courses/30/lessons/42889 코딩테스트 연습 - 실패율 실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스 programmers.co.kr 풀이코드 package seohae.thiscodingtest.part03.Q25_FailureRate; import java.util.Arrays; import java.util.HashMap; import java.util.Map; import java.util.PriorityQueue; import java.util.stream.Collectors; ..