코테/프로그래머스 16

99클럽 코테 스터디 34일차 TIL 문자열(개인정보 수집 유효기간)

https://school.programmers.co.kr/learn/courses/30/lessons/150370 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제의 핵심은 기간을 비교하면 되는 것이다.우선 약관종류에 따른 유효기간은 Map에 넣어 사용했고, 모든 비교를 일(days)로 바꿔 계산했다.  import java.util.*;class Solution { public int[] solution(String today, String[] terms, String[] privacies) { PriorityQueue pq = new PriorityQueue(); ..

99클럽 코테 스터디 33일차 TIL 문자열(신규 아이디 추천)

https://school.programmers.co.kr/learn/courses/30/lessons/72410 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문자열이 이렇게 어려웠던가.. 주어진 단계를 그대로 구현해내면 되는 문제였는데,풀고나서 다른 풀이를 보니 정규표현식을 사용하면 좀 더 깔끔하게 풀 수 있는 단계가 많았다.조만간 정규표현식을 따로 함 정리해야 할 듯.. class Solution { public String solution(String new_id) { String answer = ""; // 1. 대문자 -> 소문자 an..

99클럽 코테 스터디 24일차 TIL 완전탐색(전력망을 둘로 나누기)

https://school.programmers.co.kr/learn/courses/30/lessons/86971 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  모든 전선들 중 하나를 차례대로 끊어보면서 각각의 송전탑의 차이를 구했다. 1. j번째 전선 끊고 전력망 연결for(int j=0; j 2. 어느 하나의 노드에 연결되어 있는 송전탑 개수 계산public static void dfs(int x){ visited[x] = true; for(int i=0; i 3. 두 전력망 송전탑의 개수 차의 최솟값 갱신 (cnt, (n-cnt) 차의 절댓값)// 두 전력망의 송전탑 차의 최솟값 갱신answer..

99클럽 코테 스터디 23일차 TIL 완전탐색(소수찾기)

https://school.programmers.co.kr/learn/courses/30/lessons/42839 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 주어진 수를 가지고 만들 수 있는 모든 자릿수의 소수를 구하는 문제이다.모든 자릿수를 구하기위해 부분집합을 사용했고,이 자릿수로 만들 수 있는 모든 순서를 구하기위해 순열을 사용했다.그리고 각각의 수를 소수판별을 해서 소수는 set에 넣어주고, 마지막엔 set의 사이즈를 리턴했다. (중복 제거 위해) 그리고 제출했으나, 2/10/11/12번 테케가 틀렸다.이유는 소수 판별을 할 때 Math.sqrt(num) 범위까지의 수로만 판별해서 121과 ..

99클럽 코테 스터디 22일차 TIL 완전탐색(피로도)

https://school.programmers.co.kr/learn/courses/30/lessons/87946 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 현재 피로도로 탐험할 수 있는 최대 던전 수를 구하는 문제.어떤 '순서'로 탐험하느냐에 따라 최대 던전 수가 달라진다. 범위가 크지 않은 것을 참고하여 순열로 구현했다.1. 탐험할 던전의 순서를 순열로 정한다.2. 현재 던전 순서에 따라 탐험 가능한 던전 수(cnt)를 구하고, 이때 마다 최댓값(answer)으로 갱신한다.3. 모든 경우를 구하고 정해진 최댓값을 반환한다. import java.util.*;class Solution { ..

99클럽 코테 스터디 21일차 TIL 완전탐색(카펫)

https://school.programmers.co.kr/learn/courses/30/lessons/42842 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 그냥 수학처럼 풀었다,,1) x >= y2) x + y = (brown / 2) + 2;3) xy = brown + yellow이 3가지 조건을 만족하는 값을 배열에 저장하면 된다! class Solution { public int[] solution(int brown, int yellow) { int[] answer = new int[2]; for(int x=brown; x>=0; x--){ ..

99클럽 코테 스터디 20일차 TIL 완전탐색(모의고사)

https://school.programmers.co.kr/learn/courses/30/lessons/42840 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 우선 삼인방의 답이 반복되니 반복되는 구간을 1차원 배열에 지정했다.값으로 들어온 정답 배열과 비교해서 각 삼인방의 정답개수를 저장해둔다.정답개수를 탐색하며 최댓값(동점 포함)을 구한다.이 최댓값을 가진 사람의 번호를 저장해 리턴한다. 처음에 제출하고 런타임에러가 엄청 났는데, 알고보니...삼인방 정답을 확인할 때, 단순히 p1[i] 형식으로 비교하고 있었다..각 삼인방의 배열의 크기가 지정되어 있기에 들어오는 answers 배열의 크기에 따라..

[프로그래머스] 301649 대장균의 크기에 따라 분류하기 2 (MySQL)

https://school.programmers.co.kr/learn/courses/30/lessons/301649 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제를 읽고 처음 들었던 생각은 가장 긴 길이를 기준으로 4등분하면 되겠다고 생각하고 짰다.하지만,, 출력결과를 보고 깨달았다. 길이는 기준이 되지 못하겠구나..!! => 2 2 2 2 12 12 12 12 가 있다면, 2들은 무조건 LOW로 출력된다,,그래서 아래의 결과가 나왔다.SELECT ID, (CASE WHEN SIZE_OF_COLONY >= MAX_SIZE*0.75 THEN 'CRITICAL' ..

99클럽 코테 스터디 7일차 TIL DFS(모음사전)

https://school.programmers.co.kr/learn/courses/30/lessons/84512 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제를 읽으면서 든 생각은 순열, 조합, 부분집합, DFS 어쨌든 재귀로 풀어야겠다고 생각했다문자열을 재귀에 담아 만들면서 돌리고, 원하는 문자가 나왔을 때 그때까지의 번호를 return 하는 형식.총 길이가 5이므로, 5까지만 만들고 되돌리고를 반복하면 된다.몇번째인지를 담는 변수는 함수에 넣으면 안됨!문자가 5를 넘어가면 안되니 5에서 return 조건 걸고, 5가 되기 전에 주어진 단어가 나올 수 있으니 이때도 return 조건문을 걸어줬..

[프로그래머스] 284531 노선별 평균 역 사이 거리 조회하기 (MySQL)

https://school.programmers.co.kr/learn/courses/30/lessons/284531 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 단위(km) 함께 출력 => CONCAT( _____ , 'km')소수 둘째자리에서 반올림(소수 첫째자리까지 출력) => ROUND( _____ , 1)***** 마지막에 ORDER BY 2 로 해서 틀렸는데, 이 문제처럼 SELECT시 CONCAT을 해서 문자열이 된 경우이 컬럼을 바로 정렬에 사용하면 안된다. '100km' 보다 '20km'이 더 크게 정렬될 수 있기에!!!잘 보고 정렬해주자!!!!!! ***** -- 코드를 작성해주세요-..