알고리즘/프로그래머스 문제 풀이(6)
-
[PG] 카카오 블라인드 1차 테스트 > 뉴스 클러스터링
https://programmers.co.kr/learn/courses/30/lessons/17677/ 접근 방법 먼저 문제에 대한 이해가 필요했었다. 제일 어려운 부분은 "자카드 유사도는 원소의 중복을 허용하는 다중집합에 대해서 확장할 수 있다. 다중집합 A는 원소 "1"을 3개 가지고 있고, 다중집합 B는 원소 "1"을 5개 가지고 있다고 하자." 이 부분이 되었을 것 같다. str1 = "abccc" str2="ccdfegg" 가 된다면 합집합은 "abcccdfegg" 가 된다는 걸 놓치면 안된다. 나는 먼저 HashMap을 사용하기로 하였다. 그 이유는 str1과 str2에 대한 부분 집합을 먼저 HashMap에 넣어주게 되면 나중에 검사하게 될 때 get(Key)로 포함되어 있는 집합인지 확인하..
2021.10.10 -
[PG] 2021 카카오 채용연계 > 거리두기 확인하기
https://programmers.co.kr/learn/courses/30/lessons/81302 접근 방법 BFS로 간단하게 구현해주면 되는 문제이다. 주의 사항 Need Know BFS 전체 코드 ( Java ) import java.util.*; class Solution { static int[] dx = {-1,1,0,0}; static int[] dy = {0,0,-1,1}; public int[] solution(String[][] places) { int[] answer = new int[places.length]; for(int i=0; i
2021.10.10 -
[PG] 멀쩡한 사각형
https://programmers.co.kr/learn/courses/30/lessons/62048 접근 방법 먼저 문제를 봤을 때 우리가 중학교 때 보았던 y = ax + b; 이 구조로 보게 되었다. x의 값에 따라서 걸치게 되는 부분이 몇개인지를 보려면 Math.ceil( 올림 ) , Math.floor ( 버림 ) 을 이용하여 몇 개가 걸쳐지는지 보면 된다. 주의 사항 자료구조형 ( int 의 범위 & long의 범위를 생각해야한다. ) Need Know 구현 전체 코드 ( Java ) class Solution { public long solution(int w, int h) { long answer = (long)w*h; // 가로 세로가 같은 경우 (정사각형) if(w==h){ answer..
2021.10.09 -
[PG] 카카오 _ 신규 아이디 추천
https://programmers.co.kr/learn/courses/30/lessons/72410 접근 방법 매우매우 구현 문제라 생각하고 노가다라 생각을 했었다.. 하지만 문제를 풀고 나서 다른 사람들의 코드를 보니 나의 코드는 너무나 미숙했었다. [ 정규식에 대해 알아봐야 할 것 같다. ] Need Know 구현 정규식 다른 사람의 Amazing한 풀이 class Solution { public static String solution(String new_id) { String answer = ""; String temp = new_id.toLowerCase(); temp = temp.replaceAll("[^-_.a-z0-9]",""); temp = temp.replaceAll("[.]{2,}"..
2021.09.18 -
[PG] 42890. 후보키
https://programmers.co.kr/learn/courses/30/lessons/42890 여담 코딩테스트를 풀어보면서 요즘 느낀 것이 있다.. 문자열 처리하는 것이 대체로 많이 나오는 것 같다. ( 해쉬 등등.. ) 프로그래머스 문제들도 보면 해쉬문제나 문자열 처리 문제가 많으므로 많이 풀어보고 있는 중이다. 접근 방법 먼저 문제의 지문을 잘 파악해야 된다. ( 후보키의 정의 ) 유일성(uniqueness) : 릴레이션에 있는 모든 튜플에 대해 유일하게 식별되어야 한다. 최소성(minimality) : 유일성을 가진 키를 구성하는 속성(Attribute) 중 하나라도 제외하는 경우 유일성이 깨지는 것을 의미한다. 즉, 릴레이션의 모든 튜플을 유일하게 식별하는 데 꼭 필요한 속성들로만 구성되어..
2020.11.03 -
[PG] 12899. 124 숫자의 나라
https://programmers.co.kr/learn/courses/30/lessons/12899 접근 방법 문제를 자세히 보면 규칙을 찾을 수 있는? 그리고 진법에 대해 안다면 쉽게 풀 수 있는 문제이다. 124나라의 숫자는 오직 [ 1 , 2 , 4 ] 를 통해 숫자를 나타내기 때문에 1 -> 1 | 2 -> 2 | 3 -> 4 | 4 -> 11 | 5 -> 12 | 6 -> 14 | 7 -> 21 여기서 규칙을 찾아보면 n의 숫자를 나눈 나머지를 파악한다. (n%3) if( n % 3 == 0 ) → 4의 숫자로 표현이 된다 . // 0 이라면 n 을 감소해줘야 한다! else → 나머지 숫자로 그대로 표현이 된다. 이제 n을 3으로 나눠준 몫을 가지고 다시 진행을 한다. Need Know n진..
2020.10.20