99클럽 코테 스터디 33일차 TIL (미들러): [프로그래머스][Java] 신규 아이디 추천 - level 1
·
ProblemSolve/항해99 코테스터디
문제 보기https://school.programmers.co.kr/learn/courses/30/lessons/72410 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  풀이1단계 new_id의 모든 대문자를 대응되는 소문자로 치환합니다.2단계 new_id에서 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.)를 제외한 모든 문자를 제거합니다.3단계 new_id에서 마침표(.)가 2번 이상 연속된 부분을 하나의 마침표(.)로 치환합니다.4단계 new_id에서 마침표(.)가 처음이나 끝에 위치한다면 제거합니다.5단계 new_id가 빈 문자열이라면, new_id에 "a"를 대입합니다.6단계 ne..
99클럽 코테 스터디 22일차 TIL (챌린저): [프로그래머스][Java] 산 모양 타일링 - level3
·
ProblemSolve/항해99 코테스터디
문제 보기https://school.programmers.co.kr/learn/courses/30/lessons/258705 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  풀이문제를 읽고 dp로 풀어야겠다는 감이 왔다.더 적은 삼각형으로 이루어진 도형을 가지고 다음을 유추해 볼 수 있기 때문이다.n-1의 도형에서 새로 놓을 수 있는 마름모는 정해져 있기 때문에 식을 잘 세우면 되지 않을까?위의 경우는 새로운 마름모를 두지 않았을 때,왼쪽에 치우친 마름모를 두었을 때,똑바로 선 마름모를 두었을 때,오른쪽에 치우친 마름모를 두었을 때로 예시를 분류해 본 것이다. 그러나 아직 식을 세우기엔 애매한 점이 있..
99클럽 코테 스터디 18일차 TIL (미들러): [백준][Java] 2212 센서 - 골드5
·
ProblemSolve/항해99 코테스터디
문제 보기https://www.acmicpc.net/problem/2212  풀이처음엔 지문이 이해되지 않았다.그래서 시간을 많이 소비하였다. 예제 1번을 우선 오름차순으로 정렬해보자. 우선 처음 나오는 센서인 1번에 집중국이 하나 있다고 생각해보자.전체 길이는 9가 된다. 그리고 집중국은 두 곳 놓을 수 있다.직관적으로 생각해서 어디에 놓으면 좋을까? 나라면 6번에 놓을 것 같다.3 - 1 = 2, 9 - 6 = 3총거리는 5가 된다. 사실 나는 문제를 제대로 이해하지 못해서 아래와 같은 상황을 생각했었으나 집중국으로부터 떨어진 정도(반지름의 길이)가 아니라 총거리를 구하는 것이었다. 어찌 됐든 6번에 놓으면 좋겠다는 건 어떤 생각을 해서 결론이 그렇게 나왔던 걸까?아무래도 3~6 거리가 3이나 되기 ..
99클럽 코테 스터디 17일차 TIL (챌린저): [백준][Java] 2056 작업 - 골드4
·
ProblemSolve/항해99 코테스터디
문제 보기https://www.acmicpc.net/problem/2056  풀이최소 시간을 구하는 문제이지만그래프 탐색을 한다고 생각해보면 선행해야 하는 작업 중 가장 느린 작업이 끝나는 시간을 반영해야 하기 때문에BFS를 진행하며 최대 시간을 구하는 방법을 생각했었다...import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.util.LinkedList;import java.util.List;import java.util.Queue;import java.util...
99클럽 코테 스터디 16일차 TIL (챌린저): [백준][Java] 2179 비슷한 단어 - 골드4
·
ProblemSolve/항해99 코테스터디
문제 보기https://www.acmicpc.net/problem/2179  풀이HashMap을 사용해 문제를 풀었다.입력 순서대로 단어와 인덱스를 넣었다.이 때 단어의 길이-1을 해가며 접두사들을 넣었다.우선순위가 높은 값(최대한 비슷한 단어)부터 넣기 위해서인데 이유는 아래에 나온다. for (int i = 0; i 0; j--) { String key = line.substring(0, j); if(key.length() s) break; if(key.length() == length && map.get(key) == s && i > t) break; s = map.get(key); t = i; length = key.length(); br..
99클럽 코테 스터디 15일차 TIL (챌린저): [백준][Java] 2665 미로만들기 - 골드4
·
ProblemSolve/항해99 코테스터디
문제 보기https://www.acmicpc.net/problem/2665  풀이bfs에 다익스트라 논리를 적용하면 풀 수 있다.특정 칸 까지 걸리는 최소 검은 방을 최단거리로 생각하면 된다. int[] dx = {-1, 1, 0, 0};int[] dy = {0, 0, -1, 1};Queue q = new LinkedList();int[][] dist = new int[N][N];for(int i = 0; i = N || y >= N) continue; if(matrix[x][y]) { if(dist[x][y] == -1 || dist[x][y] > cur[2] + 1) { dist[x][y] = cur[2] + 1; q.add(new int[]{x, y, dist..
99클럽 코테 스터디 14일차 TIL (미들러): [백준][Java] 14916 거스름돈 - 실버5
·
ProblemSolve/항해99 코테스터디
문제 보기https://www.acmicpc.net/problem/14916  풀이힌트를 보면 그리드, DP를 사용할 수 있는 문제인 것 같다.나는 DP가 더 익숙해서 DP를 사용하였다.즉 거스름 돈이 0부터 N원일 때까지 얼마가 나올지를 계산해보는 방법을 선택했다. int[] dp = new int[N 우선 0~5까지는 미리 값을 계산하여 넣어 놨다.혹시나 input으로 5보다 작은 값이 들어올 경우에도 dp 배열의 크기를 6으로 하도록 했다.여기서 -1이 나와야 하는 값의 경우 100000이라는, 절대 나올리 없는 임의의 큰 값을 넣었다. for (int i = 6; i 이후 반복문을 돌리며5원 더 작은 값에서 5원을 추가한 상황,2원 더 작은 값에서 2원을 추가한 상황 중 더 작은 경우를 골랐다.만..
99클럽 코테 스터디 13일차 TIL (미들러): [백준][Java] 27961 고양이는 많을수록 좋다 - 브론즈1
·
ProblemSolve/항해99 코테스터디
문제 보기https://www.acmicpc.net/problem/27961  풀이오늘은 쉬운 문제가 나왔다!우선 최대한 전체 복제 마법으로 N에 가까운 많은 고양이들을 만들고 일부분만 복제하여 N을 채우면 될 것 같다.그렇게 1에서부터 계속 2배 마법을 걸 경우, 2의 n승으로 늘어나게 된다. long i = N == 0 ? 0 : 1, k = 1;for(; k * 2 따라서 위와 같은 간단한 for문을 N보다 작거나 같을 때까지 돌리고 i를 ++하여 몇 승인제 체크하였다.i가 N이 0일 경우는 0, 아니면 1인데 이 이유는 입력으로 0이 들어왔을 때의 예외처리를 위해서이다. bw.write(i + (N > k ? 1 : 0) + "\n");출력부분이다.k값이 N과 같은 경우 부분 복제 마법을 쓸 필요..