음...일단 도대체 왜 어제 풀었던 와 같은 LV인지 모르겠다. 같은 원리로 푸는 건 인정하나, 애초에 들어가는 기본 원리 자체가 나는 이해하기 꽤나 힘들었다. 처음엔 도저히 감이 안와서 하나씩 카운트하며 경우의 수를 모두 세려고 생각했다. 하지만 for 문이 최소 3개 이상은 들어갈 게 분명해서(이는 99.99%의 확률로 테스트 케이스를 통과하지 못한다.) 다른 방법을 고민했다. 그렇게 해서 도출한게, 바로 경우의 수 공식!(확통을 제대로 공부하여 안 까먹었다면 바로 나왔겠지....) 경우의 수 공식: 위와 같이, 4종류의 옷을 각각 A, B, C, D 개씩 가지고 있다면, 옷을 모두 벗는 경우를 제외하고 모든 경우의 수는 (A + 1)(B + 1)(C + 1)(D + 1)이다. Input은 {Glas..
전화번호 목록에 어떤 번호가 다른 번호의 앞부분에 모두 포함되는 경우를 찾아 false를 리턴하면 되는 간단한 문제이다. 처음엔 "이건 또 왜 Map을 써야하지?" 라는 생각이 들 정도의 간단한 문제인 줄 알아, 그대로 이중 for문을 이용하여 풀었다. 결과는... 아주 당연하게도 시간 초과....ㅎㅎ 테스트 케이스들이 100ms를 넘어갈 때부터 느낌이 쎄~ 하긴 했지만...처참했다. 그렇다면, Map을 사용하여 시간을 줄여야한다는 건데... 어떻게...? 고민 끝에 전화번호를 길이가 긴 순서대로 정렬하여 조각 조각 잘라 HashMap에 넣고, 넣기 전에 번호의 조각이 들어가 있는지, 없는지 확인하여 이미 들어간 조각이라면 바로 false를 반환하도록 설계하기로 했다. 우선 정렬은 Comparator클래..
Hash 카테고리 안에 있는 문제라 당연히 HashMap을 사용하여 푸는 문제로 착각했다. 물론 풀이는 가능하지만 HashMap을 사용하게되면 동명이인이 마라톤에 참가했을 경우 문제가 좀 복잡해진다. Map을 사용하지 않고 그냥 배열을 각각 정렬 후에 일치 여부를 확인해주면 아주 간단하게 풀이가 가능한 문제이다. Code: import java.util.Arrays; public class Solution { public String solution(String[] participant, String[] completion) { String answer = ""; boolean isBreaked = false; Arrays.sort(participant); Arrays.sort(completion); f..
- AsyncStorage
- await
- react-native
- Promise
- javascript
- 정보보안기사 #실기 #정리
- 인천 구월동 이탈리안 맛집
- redux-thunk
- react
- redux
- 인천 구월동 맛집
- 파니노구스토
- 맛집
- 이탈리안 레스토랑
- Async
- Total
- Today
- Yesterday