https://www.acmicpc.net/problem/28278정수를 저장하는 스택을 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오.명령은 총 다섯 가지이다.1 X: 정수 X를 스택에 넣는다. (1 ≤ X ≤ 100,000)2: 스택
https://www.acmicpc.net/problem/18258정수를 저장하는 큐를 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오.명령은 총 여섯 가지이다.push X: 정수 X를 큐에 넣는 연산이다.pop: 큐에서 가장 앞에 있는
https://www.acmicpc.net/problem/28279정수를 저장하는 덱을 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오.명령은 총 여덟 가지이다.1 X: 정수 X를 덱의 앞에 넣는다. (1 ≤ X ≤ 100,000)2 X:
📎 문제 출처 📌 문제 설명 ❓ 풀이 방법 > 📌 Code
https://www.acmicpc.net/problem/10773나코더 기장 재민이는 동아리 회식을 준비하기 위해서 장부를 관리하는 중이다.재현이는 재민이를 도와서 돈을 관리하는 중인데, 애석하게도 항상 정신없는 재현이는 돈을 실수로 잘못 부르는 사고를 치기
https://www.acmicpc.net/problem/1149문제RGB거리에는 집이 N개 있다. 거리는 선분으로 나타낼 수 있고, 1번 집부터 N번 집이 순서대로 있다.집은 빨강, 초록, 파랑 중 하나의 색으로 칠해야 한다. 각각의 집을 빨강, 초록, 파랑
📎 문제 출처 https://www.acmicpc.net/problem/1932 📌 문제 설명 ❓ 풀이 방법 드디어 내 힘으로 동적계획법 문제를 처음 풀었다 ㅜㅜ 이 전까지는 생각해보다가 안돼서 다른 사람 풀이 참고하고 나서야 겨우 이해할 수 있었는데!! 이
https://www.acmicpc.net/problem/1260문제그래프를 DFS로 탐색한 결과와 BFS로 탐색한 결과를 출력하는 프로그램을 작성하시오. 단, 방문할 수 있는 정점이 여러 개인 경우에는 정점 번호가 작은 것을 먼저 방문하고, 더 이상 방문할
https://www.acmicpc.net/problem/1912문제n개의 정수로 이루어진 임의의 수열이 주어진다. 우리는 이 중 연속된 몇 개의 수를 선택해서 구할 수 있는 합 중 가장 큰 합을 구하려고 한다. 단, 수는 한 개 이상 선택해야 한다.예를 들어
📎 문제 출처 📌 문제 설명 ❓ 풀이 방법 > 📌 Code
https://www.acmicpc.net/problem/2563도화지를 이차원 boolean 배열로 표현하고 색칠된 부분을 true로 바꾸어 true인 부분의 총 개수를 센다.
https://www.acmicpc.net/problem/22311부터 n-1까지의 모든 수에 대해(각 자리의 수의 합 + 그 수) = n 인지 확인한다.이 때 각 자리의 수의 합을 구하는 방법을 두가지로 풀었다.1\. 숫자를 문자열로 바꾼 다음 문자열의 각
https://www.acmicpc.net/problem/19532a, b, c, d, e, f를 각각 입력받은 후\-999 부터 999까지의 모든 수를 이중 for문으로 탐색한다.위의 식을 만족하는 x와 y를 찾을 때까지 for문을 반복하다가 만족하는 한쌍의
https://www.acmicpc.net/problem/2839브루트포스 알고리즘을 사용한다.이중 for문을 사용하여 모든 경우의 수에 대해 3키로 봉지와 5키로 봉지의 합이 n이 되는 경우를 찾고더 적은 개수의 봉지를 사용하는 경우를 찾기 위해 Math.m
https://www.acmicpc.net/problem/1436브루트포스 알고리즘을 사용했다.첫 번째 종말의 수는 666이기 때문에 666에서 숫자를 1씩 키워가며 숫자를 문자열로 표현했을 때 "666"을 포함하는지 검사하고포함할 경우 cnt를 1 증가시켰다
https://www.acmicpc.net/problem/11650Arrays.sort를 사용하여 노드 배열을 Comparator를 통해 정렬한다.Comparator의 compare 메서드를 재정의하여, 먼저 x 값을 기준으로 비교하고, x 값이 같으면 y 값
📎 문제 출처 https://www.acmicpc.net/problem/1181 📌 문제 설명 ❓ 풀이 방법 📌 Code
https://www.acmicpc.net/problem/10814사람들의 나이와 이름, 가입 순서 정보를 갖는 Member 클래스를 생성했다.Member의 나이 순으로 정렬하고 나이가 같을 경우 먼저 가입한 사람 순으로 정렬한다.
https://www.acmicpc.net/problem/18870처음에는 아래와 같이 이중 for문을 사용하여 현재 원소보다 더 작은 원소를 찾으면 hashmap의 값을 증가시키는 방법으로 풀었는데 정답은 나오지만 시간 초과로 통과하지 못했다.이를 해결하려면
https://www.acmicpc.net/problem/1620처음에는 HashMap을 한개 만들어서 <포켓몬 번호, 포켓몬 이름>을 저장했다.문제가 번호로 주어지면 map.get(key)로 이름을 불러오면 됐지만,문제가 이름으로 주어지면 어떻게 해야할
https://www.acmicpc.net/problem/1764hashmap을 사용해서 먼저 듣도 못한 사람을 저장하고그 후에 보도 못한 사람을 저장해서 듣도 보도 못한 사람이면 중복이므로 value를 2가 되게 했다.정렬은 value가 2인 사람의 이름을
https://www.acmicpc.net/problem/9095동적 프로그래밍(Dynamic Programming)을 사용했다. 정수 i를 나타내는 방법의 수는 정수 i-1, i-2, i-3을 나타내는 방법의 수를 더한 값이기 때문에 dp\[i] = dp\[
https://www.acmicpc.net/problem/2579이 전 계단까지의 점수의 합의 최댓값을 사용하기 때문에 다이나믹 프로그래밍을 사용했다.연속된 3개의 계단을 밟을 수 없다는 조건이 없었다면 dp\[i] = Math.max(dp\[i-1] + dp
https://www.acmicpc.net/problem/1463이 문제는 동적 계획법을 사용하여 간단하게 풀 수 있다.예를 들어 5를 1로 만드는 경우를 생각해보자.5는 2와 3으로 나누어지지 않기 때문에 1을 빼서 4로 만들고, 4는 2로 나누거나 1을 빼
https://www.acmicpc.net/problem/1541식의 값을 최소로 만들려면 +를 먼저 계산하고 -를 마지막에 계산하면 된다.그러기 위해 뺄셈기호(-)를 중심으로 먼저 문자열을 분리해준 뒤, 분리된 문자열안에 있는 수끼리 더해주고 난 후 뺄셈을
https://www.acmicpc.net/problem/1931최대한 많은 회의를 하려면 종료 시간이 빨라야 하기 때문에 종료 시간을 기준으로 정렬한다.그 뒤 마지막으로 시행된 회의의 종료 시간보다 다음 회의의 시작 시간이 늦으면 겹치지 않는 것이므로 cou
https://www.acmicpc.net/problem/11047동적의 개수가 최소가 되려면 가치가 큰 동전의 개수가 많아야한다.즉, 가치가 큰 동전부터 탐색한다.이 때, 탐색하는 동전의 가치가 남은 돈보다 작아야한다.