목록분류 전체보기 (61)
Inor
- 문제 : https://www.codeground.org/practice/practiceProblemView (codeground에 로그인 해야지 열람 가능합니다.) 최소 비용을 찾는 문제입니다. 전체 경로와 각 경로마다 비용과 할인권이 주어집니다. 시작 위치에서 도착 위치까지 이동하는 모든 경로 중, 가장 비용이 적게 드는 경로에서 지불해야하는 비용이 할인권보다 많으면 할인권을 구매합니다. P(1
- 왜 아이폰? 자바가 익숙하고 안드로이드 애플리케이션 개발 경험도 있지만 갖고 있는게 아이폰 5s와 맥북 뿐입니다. 안드로이드 폰도 없고 새로운 안드로이 폰을 구매할 여유도 없습니다. 그러면 그냥 안하면되지 왜 하느냐? 재미있을거 같아서 시작했습니다. 그리고 필요한 애플리케이션을 직접 개발해서 사용해보고 싶었기 때문에 시작했습니다. 블로그에는 따로 올리지 않고 깃허브를 이용해서 프로젝트를 진행 사항을 매번 업데이트하는 형식으로 진행해보려고 합니다. 지금은 스탠포드의 swift 강의를 들으면서 예제를 만들어보는 중 입니다. 이후에 직접 서버와 연동되는 그럴듯한 애플리케이션을 만들고 직접 사용하겠습니다! - GitHub : https://github.com/inhyuck222/LearnSwift
- 합병 정렬 분할 정복 기법을 사용한 정렬 알고리즘 입니다. 분할 정복 기법은 분할하면서 정복하는 방법과 분할이 끝날때 까지 분할 하고 합치면서 정복하는 방법이 있습니다. 합병 정렬은 분할이 안될때까지 분할 한 후에 합병하며 정렬하는 방식입니다. 분할하는 방법과 병합하는 방법을 그림으로 설명하겠습니다. 1. 분할 4 7 6 2 5 3 1 8 먼저 전체 배열을 반으로 나눕니다. 4762 531 8 이후에 반으로 분할이 안될때까지 분할을 반복합니다. 2. 정복 정복하면서 분할된 공간끼리 정렬을 합니다. 47625 31 8 먼저 파란색 영역의 4와 7 값을 비교해서 4를 7의 앞에 위치하도록 해줍니다. 6과 2의 경우에는 2가 6보다 작으니 2를 6의 앞에 위치 시켜줍니다. 이러한 방법으로 (5,3)과 (1..
- 문제 : https://www.acmicpc.net/problem/10814 주어진 회원들의 나이 순으로 정렬하고 나이가 같을 경우에는 먼저 등록한 순서로 정렬하는 문제 입니다. 등록한 순서는 입력 순서와 동일합니다. - 풀이 단순하게 나이 순서로 정렬 해주고 입력 순서를 저장했다가 입력 순서대로 정렬해주면 되는 문제인줄 알았습니다. 그래서 퀵 정렬을 2번 사용해서 나이순으로 먼저 정렬해주고, 나이가 같은 배열을 전체 배열에서 left와 right 인덱스로 나눠서 등록 순서로 배열해주었습니다. 그런데 문제를 풀다보니 계속 틀렸다고해서 인터넷을 찾아봤습니다. 알고보니 stable sort라는 것이 있었고 stable sort는 같은 값일 경우에 순서를 바꾸지 않고 정렬해주는 방법이었습니다. 3 2 1 ..
- 문제 : https://www.acmicpc.net/problem/10798 가로로 쓰여진 단어를 세로로 변경하고 빈칸인 부분은 무시해서 이어 붙여주면 되는 문제 입니다. - 풀이 경사로 문제와 비슷하게 해결했습니다. for문에서 row와 col의 위치를 변경해주는 것이 아니라 애초에 위치가 변경된 배열을 선언하고 위치를 재배열 해줬습니다. 그 이후에는 비어있는 공간을 특정 문자로 채우고 특정 문자가 있을 경우에는 건너 뛰어서 계산하도록 했습니다. - 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; public class Reading..
- 문제 : https://www.acmicpc.net/problem/12761 이동 가능한 방법이 총 8개 주어지고 방법에 맞게 동규를 이동 시키는 문제 입니다. 동규가 도착 지점까지 이동한 횟수의 최솟값을 출력하면 됩니다. - 풀이 처음에는 DP 방식으로 문제에 접근했습니다. 만약 앞으로만 이동할 수 있다면 DP를 이용해서 도착지점에서 가장 가까운 위치(도착지점 - 1)에서부터 값을 감소 시키며 시작지점에서 도착지점까지 이동한 횟수를 찾을 수 있다고 생각했습니다. 그러나 뒤로 이동하는 경우에 DP를 이용해서 문제 해결이 불가능했습니다. 예를 들어서 앞으로만 이동 가능하고 도착 지점이 20이고 현재 11번째에서 20까지 갈 수 있는 최단거리를 찾으려고 할때 11과 20 사이의 위치에서 최단으로 20까지..