본문 바로가기

알고리즘 문제풀이

[SWEA][JAVA] 1238 - Contact 문제 출처 : https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV15B1cKAKwCFAYD&categoryId=AV15B1cKAKwCFAYD&categoryType=CODE&problemTitle=1238&orderBy=FIRST_REG_DATETIME&selectCodeLang=ALL&select-1=&pageSize=10&pageIndex=1 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 설명 예시 그림도 있어서 문제의 길이는 꽤 긴편이었지만, 그에 비해서 난이도는 그렇게 높지 않은 문제입니다. 그래프에서 한 .. 더보기
[백준][JAVA] 1260 : DFS와 BFS 문제 출처 : https://www.acmicpc.net/problem/1260 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net 문제 설명 DFS와 BFS를 배운 직후에, 제대로 코드를 익혔는지 확인용으로 풀어봤습니다. 인접 행렬에 입력값들을 차례대로 넣은 다음에(양방향 그래프임에 주의해야 합니다!) 차례대로 DFS와 BFS를 구현해 줬습니다. 코드 import java.io.BufferedReader; import java.io.InputStreamReader; impo.. 더보기
[SWEA][JAVA] 1247 - 최적 경로 문제 출처 : https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV15OZ4qAPICFAYD&categoryId=AV15OZ4qAPICFAYD&categoryType=CODE&problemTitle=1247&orderBy=FIRST_REG_DATETIME&selectCodeLang=ALL&select-1=&pageSize=10&pageIndex=1 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 설명 난이도 D5문제 치고는 그렇게 어려운 편은 아니긴 하나, 완전탐색 '순열' 아이디어를 못 잡고 어렵게 생각하는 바람에 .. 더보기
[BOJ][JAVA] 11866 - 요세푸스 문제 0 문제 출처 : https://www.acmicpc.net/problem/11866 11866번: 요세푸스 문제 0 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000) www.acmicpc.net 문제 설명 자료구조 Queue(FIFO)를 사용하는 문제였습니다. 물론 문제를 읽고 바로 큐를 떠올리기는 쉽지 않습니다만, "원(Circle)형 문제"이기 때문에 K번째 사람 전까지의 사람들을 dequeue & enqueue하면 K번째 사람을 제거하고 나서도 원에서의 순서가 그대로 유지되기 때문에 큐를 사용하면 간단하게 문제가 해결됩니다. 코드 import java.util.LinkedList; import java.util.Queue; import java.util.. 더보기
[프로그래머스][JAVA] 타겟 넘버 문제 출처 : https://programmers.co.kr/learn/courses/30/lessons/43165 코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+ programmers.co.kr 문제 설명 각 원소가 + 일 때와 - 일 때를 나눠서 각각 재귀를 태워 보내는데, 모든 원소를 다 따져봤다면 그것을 기저 조건으로 해서 그 합이 0일 때만 답에 누적시키는 방식으로 풀었습니다. 코드 class Solution { static int cnt; //cnt : 경우의 수 누적 publ.. 더보기
[BOJ][JAVA] 10773 - 제로 문제 출처 : https://www.acmicpc.net/problem/10773 10773번: 제로 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경 www.acmicpc.net 문제 설명 풀이 방법으로 스택(FILO)을 쉽게 떠올릴 수 있는 문제입니다. 입력이 0일 때마다 스택을 pop하고, 그렇지 않으면 그 수를 스택에 넣습니다. 입력이 끝나면, 스택이 빌 때까지 pop하면서 pop한 수를 결과에 누적시켜 더하면 되는, 비교적 간단한 문제였습니다. 코드 import java.util.Scanner; import java... 더보기
[SWEA][JAVA] 1223 - 계산기 2 문제 출처 : https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV14nnAaAFACFAYD&categoryId=AV14nnAaAFACFAYD&categoryType=CODE&problemTitle=1223&orderBy=FIRST_REG_DATETIME&selectCodeLang=ALL&select-1=&pageSize=10&pageIndex=1 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 설명 중위 표기법, 후위 표기법은 보통 스택을 배울 때 예제로 나오는 주제이기 때문에 이 문제를 풀 때 스택을 사용해야 한다.. 더보기
[BOJ][JAVA] 7568 - 덩치 문제 출처 : https://www.acmicpc.net/problem/7568 7568번: 덩치 우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩 www.acmicpc.net 문제 설명 그렇게 어렵지 않은 문제인데, 너무 어렵게 생각해서 초반에 좀 헤멨던 문제입니다. 저처럼 복잡하게 잘못 생각하지 않으려면, 다음과 같이 생각하시면 됩니다. 각 사람의 덩치 등수는 자신보다 "더 큰 덩치", 즉 키와 몸무게가 확실히 자기보다 더 큰 사람의 수로 정해집니다. 따라서, 덩치 등수 정하기 애매한 것은 생각하지 않고, 그냥 자기보다 확실히 더 큰 사람이.. 더보기