| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
- 알고리즘
- 백준
- 더베일리하우스 삼성점
- 자바
- 중첩네비게이션
- 후기
- media3 transformer
- Kotlin
- 가든웨딩
- 패스트파이브
- 너무 어렵다
- 안드로이드
- 스택
- media3
- Android
- 파이썬
- fragmentcontainer
- 공유오피스
- SAA
- Stack
- MVVM
- 패파
- rxandroid
- innernavigation
- 사무실
- 내부프레그먼트
- 코틀린
- parentfragment
- 재밌긴함
- 아키텍쳐
목록분류 전체보기 (47)
삽질도사
전형적인 그리디유형의 문제입니다. 모르면 어지간해서는 절대 못풀고, 알면 쉽게 풀 수 있는 문제입니다. 난이도 측정이 심하게 잘못되어서 원래 실버2? 쯤에 있었는데, 이 문제는 이후에 골5쯤에서 나오는 센서와 동일한 문제입니다. 바로 앞에 있는 숫자와의 차를 모두 배열에 집어넣습니다. 이는 새로운 배열에 할당한다고 생각하시면 됩니다. (코드에서는 배열을 재활용했음) 배열을 모든 인덱스에 대해서 2개짜리 묶음으로 묶었다고 생각하시면 편합니다. 그리고 그 묶음에서 n-k만큼 뽑으면 됩니다 ( 묶음끼리 겹치게 되면 한묶음이 된다고 생각! ) 그림그려보면 이해가능하지만, 일반인의 머리로는 백지상태에서 절대로 쉽게 풀 수 있는 문제가 아닙니다. 이러한 유형은 만났다면, 반드시 풀이를 기억해서 또 만나면 똑같은 방..
해쉬맵을 이용하면 확장자별로 정리가 가능할 것이고, 그것을 사전순으로 배치하여달라 했으니, 손쉽게 트리맵으로 구성해서 풀었습니다. 트리맵을 이용했다면 3분이면 풀 수 있는 문제가 아닌가 싶습니다. 확장자정리는 토크나이저를 이용해서 "." 앞에 있는 문자는 버리고 뒤에 있는 확장자만 받아와서 트리에 넣음으로써 문제를 풀어나갔습니다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Map.Entry; import java.util.StringTokenizer; import java.util.TreeMap; public class 파일정리 { static int ..
논리력을 크게 요구하지 않는 쉬운 문제였습니다. 하지만 인덱스와 관련된 문법에 에러가 발생하기 또한 쉬운 문제였습니다. (라임오지고) 그렇기때문에 쉬운 로직에도 불구하고 난이도가 실4정도로 잡혀있는 것 같습니다. (심지어 정답률 20%) 저 또한 쉽게 생각하고 대충 짰다가 엄청틀리고 뭐틀렸는지 몰라서 굉장히 헤맸습니다. 여자로직에서 while문에 인덱스 범위를 지정하면서 상당히 헷갈리기 시작하면서(?) 여러번 고쳐썼습니다. 전체적으로 봤을 때, while문에 진입하기전에 범위를 늘리고 -> while(true){ 늘린 범위가 맞는지 확인 -> 값이 같은지 확인 -> 범위 늘림 } 벗어나면 범위를 좁혀줌-> 범위내에 값을 변경 함으로써 문제없이 구현했습니다. while문을 벗어나는 조건이 범위가 넓거나, ..
로직이 비슷해서 복붙하다가 실수한지도 모르고 엄청 꼬였었습니다... 이 문제에서 얻을 점은 맵의 사이즈가 작아서 무식하게 풀어도 풀린다는 점을 문제를 보고 알 수 있어야 한다는 점정도이고, 구현 문제라함은 가능한 실수가 없이 정리를 잘해가면서, 차근차근 풀어야 한다는 점을 상기시켰습니다. 개인적으로 구현문제를 풀 때에 맵이 존재하면 중간에 로직을 짜다가 맵을 보여주는 함수를 만들어서 확인할 때가 종종 있습니다. 이번 경우에는 제가 실수를 함으로써 무엇이 잘못되었나 확인하는데에 사용했었습니다. 제 코드에서 map을 3차원으로 만듬으로써 저는 [5][5]짜리 맵이 두 개 있는 듯한 효과를 주었습니다. 이러한 코드방식은 이후에 벽부수고 이동하기 등 bfs에서 종종 쓰이기도 합니다. import java.io...
풀이가 직관적이지만 생각해내기 쉽지 않은 상당히 어려운 문제라고 생각합니다. 우선순위 큐를 사용해서 풀이하였습니다. 가장 어렵다고 생각했던 부분중에 하나는 우선순위 큐의 우선순위가 도착지점(오름차순)으로 되어야만 풀이가 가능하다는 점이었습니다. 출발지점을 우선순위로 두고 각 마을에서 최대무게만큼 챙겨가는게 가장 이득이 아닐까 생각해서 그렇게 풀었었는데, 1번 마을에서 4번 마을(끝마을이라고 생각하면) 까지 상자무게가 40(최대무게라고 치면) 중간에 아무것도 챙겨갈 수가 없고 4번마을까지 냅다 운전만해야됩니다...ㅠ 때문에 도착지점이 가까운 순서로 박스를 싣는다고 생각하고, 도착지점이 같다면 출발지점(오름차순)으로 우선순위를 정하여 상자를 넣었습니다. 처음에 마을 배열을 선언하였고 각 마을마다 최대무게를 ..
처음에는 q와 k만 찾아서 쉽게쉽게 하려고 했으나, 풀이가 불가능한 경우에 -1을 반환하는 것이 매우 복잡해져서 순수하게 하나씩 찾는 것으로 풀이하였습니다. 함수내에서 순차적으로 찾은 문자열이 담긴 자료는 제거하면서 반복문을 반복하였습니다. 함수내에서 모두 찾아서 배열이 비어버리면 종료했고, 끝까지 도달했는데 k를 찾지못하면 잘못된 입력이 들어온 것이므로 -1을 출력하고 종료합니다. 또한 시간초과가 발생할 것을 우려해서(매우 비효율적으로 짜여져있기때문에...) 애초에 q가 첫 글자에 있지않거나, 총 글자수가 5의 배수가 아니라면 무조건 틀린입력이기 때문에 바로 -1을 출력/종료 했습니다. import java.io.BufferedReader; import java.io.IOException; import..
기본적인 구현문제였습니다만, 구현문제가 대부분 그렇기는 하지만 이건 효율적으로 짜여진 코드는 아닙니다. 매우 부끄러운 코드임으로 구냥 참고용으로 보시면 좋겠습니다...(_ _).. 1,1에서 시작해서, -1하면서 (아래쪽으로 끝까지 -> 오른쪽끝 -> 위로 끝까지 -> 왼쪽) 끝까지 방문체크하여 중복없이 4가지 이동을 좌표가 x,y 둘다 (n+1)/2인 가운데(1)에 다다르면 끝나는 것이고, 이전에 원하는 숫자를 찾으면 좌표을 출력 후 종료했습니다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class 달팽이 ..