일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- jenkins
- 윈도우 kill -9
- db
- SQL Parser
- AWS
- 인바운드규칙
- 리액트 돔
- Hard Parsing
- 코딩테스트
- 깃랩 젠킨슨 연동
- 프로그래머스 위장
- 프로그래머스 전호번호 목록
- SQL
- Oracle
- EC2
- Soft Parsing
- FTP
- Clooection
- 알고리즘
- 국가공은자격증
- 베트스앨범
- jenkins gitlab 연동
- SQL Optimizer
- SQL파싱
- 프로그래머스
- 윈도우 프로세스 죽이기
- 스프링 실행 에러
- SFTP
- Row-Source Generation
- Java
- Today
- Total
목록프로그래머스 (3)
알파돈
일단 이번문제는 문제 읽고 무슨소리인지 몰랐다. 다시보니까 이해가 됬다 본인이 다른 배열값의 접두어인지만 확인하면 된다. 이문제는 처음에 Hash를 안하고 그냥 배열에서 이중 for문으로 돌리다보니 성능테스트 3, 4에서 시간 초과가 나와 왜일가 고민하면서 알아본결과 HashMap가 시간이 훨씬 빠르다고 한다. 이 문제도 일단 전화번호 목록을 hashMap에 넣고 하니 성능이 다 통고 했다. 이 부분을 보면 값을 substring으로 잘라 hashMap에 값이 존재하는지 확인하다. 본인 길이보다 1작게 잘리기때문에 자기자신을 비교해도 같다고 안나온다.
이번문제는 중복인 값도 없고 확률 계산만 하면 생각보다 쉽게 풀 수 있었다. HashMap을 사용해서 일단 배열들을 해시하여 중복값을 제거한 후 갯수만 저장한다. 코딩을 풀고나서 알아보니 위 코드보다 hashMap.getOrDefault()라는 메서드를 사용하면 코드 길이도 줄어 들었다. hashMap.getOrDefault(clothes[i][1], 0) +1 이렇게 하면 된다. HashMap를 반복문 돌리면서 곱해주면 답을 구할 수 있다 *마지막에 모두 안입은 경우는 빼줘해서 -1이 필요하다. 필자는 반복문을 위해 Set를 만들어서 사용 했다.
코딩테스트 고득점 Kit 해시의 첫번째 문제 완주하지 못한 선수 비교 알고리즘이다 일단은 두 배열을 비교하는 문제이다 항상 paricipant배열이 completion보다 1 크다. 레벨 1 답게 코드는 생각보다 간단했다. 먼저 Arrays.sort()메서드를 사용해서 두 배열을 sort해준다음 비교해주면 된다. 이렇게 하면 이름이 같은 사람이 나올경우도 해결 할 수 있다. paricipant배열이 completion보다 1 크므로 반복문 실행 시 길이보다 하나 작게 한다. 맨마지막 return은 paricipant 마지막 인자값으로 설정한다. 이렇게 안해줘도 100점이 나오는거보면 완주 못한경우가 이니셜 제일 마지막인 테스트케이스는 없는거같다