본문 바로가기

전체 글

(93)
[BOJ]11404번 : 플로이드 https://www.acmicpc.net/problem/11404 11404번: 플로이드 첫째 줄에 도시의 개수 n이 주어지고 둘째 줄에는 버스의 개수 m이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스의 출발 도시의 번호가 www.acmicpc.net 알고리즘 분류 그래프 이론 플로이드-와샬 문제 파악 문제의 제목처럼 플로이드-와샬 알고리즘으로 해결하는 문제이다. J번째 도시에서 K번째 도시로 가는 버스 비용이 주어지며 해당 도시까지 가는 최소 비용을 구하여 출력하는 문제 1. 고려해야 될 점이 있다면 예제 입력에서 (1,2,3) , (1,2,2)처럼 출발지와 목적지가 같은데 버스 비용이 다른 경우가 있으므로 최소치가 입력되게 해줘야 하는 것 ..
[Programmers] LV3 - 단어 변환 https://programmers.co.kr/learn/courses/30/lessons/43163 코딩테스트 연습 - 단어 변환 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 programmers.co.kr 문제 파악 문제에 나와 있듯이 1. 한 번에 한 개의 알파벳만 변환할 수 있다. 2. words 배열에 있는 단어로만 변환할 수 있다. 3. begin에서 target으로의 변환 할 때까지 걸린 횟수를 return 하고, 변환할 수 없을 경우 0을 return 해준다. 더보기 import java.util.*; clas..
[Programmers] LV3 - 순위 https://programmers.co.kr/learn/courses/30/lessons/49191 코딩테스트 연습 - 순위 5 [[4, 3], [4, 2], [3, 2], [1, 2], [2, 5]] 2 programmers.co.kr 문제 파악 1.results 배열에 선수끼리의 시합 결과가 주어진다. ( "[4,2]라면 4번 선수가 2번 선수를 이김") 2. 해당 결과를 가지고 순위의 파악이 가능한 사람은 몇 명인가? 다른 분들을 보아하니 LIST로 푸신 분도 있고 한데 나는 BOJ의 저울 문제가 생각나서 플로이드-와샬 알고리즘으로 풀었다. 더보기 import java.util.*; class Solution { static final int INF = Integer.MAX_VALUE / 2; p..
[Programmers] LV1 - 크레인 인형뽑기 게임 https://programmers.co.kr/learn/courses/30/lessons/64061 코딩테스트 연습 - 크레인 인형뽑기 게임 [[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]] [1,5,3,5,1,2,1,4] 4 programmers.co.kr 문제 파악 1. 크레인이 moves 배열의 위치로 가서 인형을 뽑는다 (이동 후 board [row][col]!= 0 인 위치 찾기) 2. 해당 row를 찾아서 값을 가져오고 바구니에 순차적으로 쌓는다. (Stack) 3. 이전에 쌓여있는 인형과 지금 뽑아서 바구니에 넣으려는 인형이 같다면 터트린다. (이 과정에서 인형 2개가 사라짐) 그리고 뽑은 위치의 board[row][col] 값은..
[Programmers] LV2 - 짝지어 제거하기 https://programmers.co.kr/learn/courses/30/lessons/12973 코딩테스트 연습 - 짝지어 제거하기 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙 programmers.co.kr 문제 파악 1. 문자열 중에서 'aa'와 같이 같은 문자가 연속되어있다면 해당 부분을 제거 한 다음 문자열을 다시 만든다 2. 이 과정을 반복하여 공백으로 만들 수 있다면 1 아니라면 0을 return 한다. 처음에는 char key = 'a'를 이용해서 해당 문자열에 'aa'가 없을 때까지 반복하고 'bb'를 만들어서 replaceAll로 처리하였..
[Programmers] LV2 - 영어 끝말잇기 https://programmers.co.kr/learn/courses/30/lessons/12981 코딩테스트 연습 - 영어 끝말잇기 3 ["tank", "kick", "know", "wheel", "land", "dream", "mother", "robot", "tank"] [3,3] 5 ["hello", "observe", "effect", "take", "either", "recognize", "encourage", "ensure", "establish", "hang", "gather", "refer", "reference", "estimate", "executive"] [0,0] programmers.co.kr 문제 파악 1번부터 N번까지 순서대로 영어로 끝말잇기를 한다. 탈락하는 조건은 2가지..
[BOJ] 1141번 : 접두사 https://www.acmicpc.net/problem/1141 1141번: 접두사 접두사X 집합이란 집합의 어떤 한 단어가, 다른 단어의 접두어가 되지 않는 집합이다. 예를 들어, {hello}, {hello, goodbye, giant, hi}, 비어있는 집합은 모두 접두사X 집합이다. 반면에, {hello, hell}, {giant, www.acmicpc.net 문제 파악 문제의 의도는 A라는 문자가 B라는 문자의 접두사가 되는가 파악해서 접두사가 되지 않는 문자들의 개수를 출력하면 된다. 더보기 import java.util.*; import java.io.*; public class Main{ public static void main(String[] args) throws IOExceptio..
[Programmers]LV3 - 길 찾기 게임 https://programmers.co.kr/learn/courses/30/lessons/42892 코딩테스트 연습 - 길 찾기 게임 [[5,3],[11,5],[13,3],[3,5],[6,1],[1,3],[8,6],[7,2],[2,2]] [[7,4,6,9,1,8,5,2,3],[9,6,5,8,1,4,3,2,7]] programmers.co.kr 문제 파악 문제에 주어진 설명에서 간선, 전위 순회, 후위 순회를 보고서 트리 구조로 문제를 풀어야겠다는 생각이 들었다. 왜냐하면, X좌표를 기준으로 BST가 만들수 있겠다는 판단이 섰기 때문이다. 그런데 이론만 알고 막상 트리를 구현하려고 하니 생각보다 잘 안돼서 트리 구조에 대해 다시 공부하고 풀었다.. 모르는 걸 새로 알아가는 것도 좋지만 이런 걸 모르면 좀..