알고리즘(59)
-
[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 -
[BOJ] 1013. Contact
https://www.acmicpc.net/problem/1013 접근 방법 정규식만 잘 안다면 풀 수 있는 문제이다. 정규식에 모르거나 연습할 문제로 충분하다. Need Know 정규식 전체 코드 ( Java ) import java.io.*; class Main { static int N; static StringBuilder sb = new StringBuilder(); static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); public static void mai..
2021.09.25 -
[BOJ] 1107. 리모콘
https://www.acmicpc.net/problem/1107 접근 방법 ( 먼저 좋지 않은 코드라 생각한다.. ) → 더 짧은 시간안에 풀을 수 있다.. 일단 생각해낸 방법은 채널은 500,000이 최고이므로 최대를 1,000,000으로 잡고 for문을 지나면서 채널을 틀 수 있는지 보았다. // 채널을 틀 수 있는지에 대한 함수 static boolean check(String str){ for(int i=0; i temp){ answer = temp; } if(answer == 0){ System.out.println(0); return; } 주의 사항 Need Know 완전 탐색 전체 코드 ( Java ) import java.io.*; import java.util.ArrayList; imp..
2021.09.25 -
[BOJ] 2174. 로봇 시뮬레이션
https://www.acmicpc.net/problem/2174 접근 방법 먼저 로봇의 index를 꺼냈을 때 로봇의 정보가 담아져있으면 되기 때문에 자료구조형은 HashMap 을 가져갔다. 또한 좌표에 로봇이 있는지 없는지에 대한 정보와 좌표에 어떤 로봇이 있는지에 대해 2차 행렬로 표시하였다. static HashMap hashMap = new HashMap(); static int[][] map; // index값이 들어오게 된다. ... class Robot{ int direction, x, y; public Robot(int direction, int x, int y) { this.direction = direction; this.x = x; this.y = y; } } 주의 사항 가로는 A,..
2021.09.19