오늘 아침도 기분 좋게...? 문제 풀이로 시작하려 했는데.... 이게 머선 129... LV2 문제가 존재하지 않는다....(뭐야...내 LV2 돌려줘요...) 아직 Greedy 활용 문제들이 많이 어려워서 LV2 문제 딱 하나만 더 풀었으면 좋겠는데... 아쉽지만, 그래도 할건 해야지... 바로 문제로 들어가자 즉, 예제의 입력을 그림으로 나타내면 다음과 같다. 굉장히 익숙한 그림이다. 사실, 어제 이 문제를 풀다가 도저히 안 되겠어서 Union-Finf, Kruskal 알고리즘을 공부하고 왔다... 하하 LV3 문제들은 보통 이런 선행학습이 꼭 필요한 경우들이 많아서...ㅠ 아무튼 오래 생각하지 않아도, 이 문제는 그냥 어제 코드를 짰던 Kruskal알고리즘을 활용하면 어려울 거 하나도 없이 풀린다..
어릴 때 닌텐도 DS로 플레이했던 레이튼 박사 시리즈가 생각이 나는 문제...ㅋㅋ 아마 배열의 첫 인자부터 차례차례 남은 인자들과 합쳐서 limit를 넘는 순간 타고 빠지게끔? 작성하면 풀릴 거 같다. package com.choonham; class Solution { public int solution(int[] people, int limit) { int answer = 0; int sum = 0; int count = 0; for (int i = 0; i < people.length; i++) { if (people[i] != 0) { sum += people[i]; people[i] = 0; if (i != people.length - 1) { for (int j = people.length -..
엥...이거 완전...? 그냥 완전 탐색 기법을 사용해서 숫자 2자리를 제외하고 나머지를 사용하여 수열을 뽑아내면 되는 문제 아닌가..? 그래서 이전에 사용했던 조합을 뽑는 알고리즘을 그대로 가져와 조합을 뽑고, Integer 리스트에 넣어서 정렬하여 가장 큰 수를 뽑아내는 방식으로 코드를 작성했는데, package com.choonham; import java.util.ArrayList; import java.util.Collections; import java.util.List; class Solution { private List strArray = new ArrayList(); public String solution(String number, int k) { String answer = ""; ..
일단 문제의 핵심은 조이스틷의 조작 횟수의 최솟값을 구하는 것이다. 즉, 만들어야할 문제가 어느 방향으로 움직여야 하는 지 정해야한다. 문제에서 문자는 모두 대문자로 주어진다고 했으니, 아마 아스키코드 값을 이용하여 판단하면 될 것이다. 표에서 A ~ Z가 65 ~ 90이므로 78번인 N을 기준으로 N 뒤 문자들은 조이스틱을 아래로 조작하여 만들게 코드를 작성하면 풀 수 있다. ... 라고 매번 처음에는 생각한다. 그러나 여기서 반드시 생각하고 넘어가야 하는 아주 중요한 사항이 있다! A일때는 조이스틱을 조작하지 않아도 문자가 이미 완성되어 있는 상태이다. 즉, JAAAAAAAAAJ 라면 굳이 A들을 모두 거치고 가는 방법보다는 첫 문자를 입력 후 마지막 문자로 커서를 이동시켜 마지막 J를 입력하는 것이..
조건을 하나 정해놓고 근사치를 뽑을 때까지 반복하면 되는 전형적인 Greedy 문제이다. 체육복의 여벌이 있는 학생이 체육복을 도둑맞았을 때는 자신의 체육복을 써야 하므로, reserve 배열에서 빠져야 한다는 점을 제외하고는 크게 문제 될 게 없는 문제이다. 정석대로 풀면 이중 for문이 2번 들어가게 된다. 이, 삼중 for 문에 좀 많이 당해봤던터라...그 풀이가 좀 보기 싫어서 Set도 만들어보고, List도 만들어보고 했지만, 이 문제는 그냥 이게 정답이지 싶어서 포기했다...ㅎㅎ package com.choonham; class Solution { public int solution(int n, int[] lost, int[] reserve) { int answer = 0; int lostN ..
딱 보자마자, "이건 뭐지..." 하고 한참을 생각한 문제이다. 각 격자의 개수는 기억해놓고 그 넓이를 기억을 못한다는 LEO.... 사실 복잡해보이지만, 진짜 단순하게 생각하면 결국 카펫의 넓이는 노란 타일 부분의 가로와 세로 부분에 각각 +2씩하여 넓이를 구하면 된다. 두 타일의 개수를 더하여 나온 타일의 총 개수 = 카펫의 넓이이므로, 노란 타일의 개수를 받아와 1부터 나누어가며 딱 나누어 떨어지면서 나눈 수와 몫을 곱했을 때 총 타일의 개수가 되는 순간, 도출한 가로와 세로 크기에 2씩을 더하여 추출하면 되는 문제이다. package com.choonham; class Solution { public int[] solution(int brown, int yellow) { int[] answer =..
이 문제를 오늘 오전 8시부터 보고 풀기 시작했는데... 처음에는 "17"이라는 문자열이 들어오면, 1부터 17까지의 소수의 개수를 구하는 문제라고 덜컥 생각하고 풀어버려서... 오전 풀이 시간을 날려버렸다... 하하.. 문제는 항상 2번씩 읽읍시다. 본질은 "17"이라는 문자열을 받으면 받은 문자열을 한자리 숫자로 쪼갠 뒤, 만들 수 있는 모든 숫자 조합에서 소수를 찾는 문제이다. 즉, 받은 문자열을 쪼개고, 배열에 넣은 뒤 수열을 구하여 풀어야한다. 수열을 만드는 알고리즘은 직전 포스팅에서 열심히 구현해 놨으니, 이제 쓰기만 하면 된다. package com.choonham; import java.util.ArrayList; import java.util.HashSet; import java.util..
완전 탐색을 푸는 첫날인데, 아침부터 굉장히 마음에 드는 문구를 봤다. 네, 무식한 게 최곱니다. ㅎㅎ 가끔 무지성으로 푼 풀이가 딱 들어맞으면, 그거만큼 기분 좋은 게 없어요. 아무튼, 문제로 들어가면 수포자 1, 2, 3 의 찍는 패턴을 배열로 저장한 뒤에 인자로 받은 정답의 배열과 하나하나 비교하여, 각자 몇 문제를 맞혔는지 확인하면 되는 문제이다. 사실 완전 탐색은 말 그대로, 모든 경우의 수를 다 탐색하면 끝인 문제들이라, 효율적인 검색 방법을 찾는 것을 제외하고는 딱히 복잡하게 생각할 게 없는 거 같다. 나머지 연산과 문제를 가장 많이 맞힌 1등 수포자 여러 명일 수도 있는 경우를 생각하여 코드를 작성하면 된다. package com.choonham; import java.util.ArrayL..
"생각보다 간단했다." 고 말할 뻔했다. 인용 횟수를 저장할 h와 해당 h값보다 큰 인용 횟수를 가진 정수의 개수를 가지는 n을 선언해준 뒤, citations 배열을 오름차순 정렬해주고, h 값에 해당하는 iterator를 ciataions의 길이에 빼주면 h보다 큰 수의 개수를 구할 수 있고, h의 최대 값은 n이 h보다 같거나 커지는 최초의 순간이므로, 그렇게 코드를 작성해주면 끝날 줄 알았다. package com.choonham; import java.util.Arrays; class Solution { public int solution(int[] citations) { int answer = 0; int h = 0; int n = 0; Arrays.sort(citations); for(int..
어....꽤나 어려운 문제가 걸린 거 같다. 첫 인상은 어제 풀었던 Heap LV3보다 더 생각할 것이 많아 보였다. 처음에는 하나하나 붙여서 따로 배열을 생성한 뒤 내림차순으로 정렬하여 String변환 후 내보내는 코드를 짜려고 했는데... 이게 테스트케이스 2번 같은 경우만 해도, 나올 수 있는 경우의 수가 5 x 4 x 3 x 2 x 1 = 120 이 나오는 미친 효율성을 보여줄게 뻔해서...포기했다. 다시 처음으로 돌아와서 애초부터 String Array로 변환을 시킨 후에 내림차순 정렬을 하는 방법을 생각해봤지만, 문자열은 첫번째 자리가 큰 순서, 문자열이 긴 순서로 정렬이 되기 때문에 테케 2번에 9534303이 나와버린다...하하... 한참을 고민하다가, Sort의 기준을 두 인자를 합친 값..
- await
- 인천 구월동 이탈리안 맛집
- javascript
- 맛집
- 인천 구월동 맛집
- AsyncStorage
- 정보보안기사 #실기 #정리
- redux
- react-native
- Promise
- 이탈리안 레스토랑
- redux-thunk
- react
- Async
- 파니노구스토
- Total
- Today
- Yesterday