99클럽 코테 스터디 2일차 TIL (챌린저): [백준][C++] 1389 케빈 베이컨의 6단계 법칙 - 실버1
·
ProblemSolve/항해99 코테스터디
문제 보기https://www.acmicpc.net/problem/1389  풀이계속 이전에 풀었던 문제가 나온다.내가 생각보다 문제를 많이 풀어 봤나?저번과 차이가 있다면 C++로 풀었던 문제라는 점이다. 오늘도 예제를 그래프로 그려 보았다.가중치와 방향성이 없는 그래프이다.케빈베이컨 수가 가장 작은 사람을 구하기 때문에 DFS보다 BFS가 더 맞을 것 같다. 각 사람들의 케빈베이컨 수(모든 유저에게 도달하는 최단 경로의 합)를 구해서 그 중에 가작 작은 사람을 고르자. 코드가 좀 길어질 수는 있으나 어려운 로직은 아니다. 1. 한 사람의 케빈 베이컨 수 구하기 int sum = 0;bool* visited = new bool[N + 1];for (int j = 1; j queue;list::iter..
99클럽 코테 스터디 2일차 TIL (비기너): [프로그래머스][Java] 크기가 작은 부분 문자열 - level 1
·
ProblemSolve/항해99 코테스터디
문제 보기https://www.acmicpc.net/problem/1072  풀이이전에 풀었던 문제이다.우선 주의할 점은 p가 최대 18글자이기 때문에 long으로 파싱해야 한다는 점이다.그리고 인덱스가 0일 때부터 t의 길이 - p의 길이일 때까지 순회해 부문 문자열을 substring 메서드를 통해 뽑아내면 된다. 솔직히 비기너 문제는 설명할 게 없어서 바로 전체 코드를 참고 해도 좋을 것 같다.  전체 코드class Solution { public int solution(String t, String p) { int answer = 0; long parseP = Long.parseLong(p); int length = p.length(); fo..
99클럽 코테 스터디 2일차 TIL (미들러): [백준][Java] 11561 징검다리 - 실버3
·
ProblemSolve/항해99 코테스터디
문제 보기https://www.acmicpc.net/problem/11561  풀이연속해서 이분탐색 문제가 나왔다.그러나 오늘은 처음부터 이분탐색이라는 걸 알아차리지 못했다.오히려 처음엔 DP 문제 아니야? 하고 풀이 방법을 잘 생각해보다가 뭔가 의문점을 발견한 것이다. 당연히 1부터 시작해서 1씩 더하는 게 맞는 답 아닌가? 그렇게 while (sum sum += i++; ...같은 코드를 짜다 보니 10^16이 얼마나 큰 수 일까 관심이 갔다. 시간 초과 날 것 같은데 다른 방법은 없을까?  어김없이 구글 선생님한테 물어봤다.블로그 선생님들이 고등학생 때 배워 놓고 까~맣게 잊어버린등차 수열의 합이 내가 찾으려는 것이었다. 1. 등차 수열의 합결론부터 말하자면 등차수열의 합 공식은 위와 같다.S 합n..
99클럽 코테 스터디 1일차 TIL (챌린저): [백준][C#] 11403 경로 찾기 - 실버1
·
ProblemSolve/항해99 코테스터디
문제 보기https://www.acmicpc.net/problem/11403  풀이문제를 풀러 갔더니 예전에 푼 문제다.쓱 훑어봤는데 간단한 문제라 예전에 풀었던 풀이로 정리를 하기로 했다.예제를 보며 풀이 방법을 생각해 보자.우선 1열에서 갈 수 있는 모든 열을 구해 볼 건데, 우선 2열로 이동할 수 있어 보인다.2열로 가면 3열로 이동할 수 있고, 3열로 가면 또 1열로 이동할 수 있다.  따라서 모든 열에서 모든 행으로 갈 수 있다는 소리다.간단한 그래프 탐색 문제인데 한 번 그래프를 그림으로 그려 보면 이해가 더 빠를 것 같다. 모든 노드가 순환 연결이 되어 있다. 그럼 예제 2번도 그래프로 그려 보자.자 이제 그래프로 그려 봤으니 남은 건 탐색이다.나는 DFS를 사용 했다.모든 열을 순회하며 해..
99클럽 코테 스터디 1일차 TIL (비기너): [프로그래머스][Java] 문자열 내 p와 y의 개수 - level 1
·
ProblemSolve/항해99 코테스터디
문제 보기https://school.programmers.co.kr/learn/courses/30/lessons/12916 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  풀이for(int i = 0; i  간단한 문제니 가볍게 살펴보자.문자열 s의 길이는 length 메서드로 구할 수 있다.이 문자열의 길이만큼 순회를 하며 charAt(int 인덱스) 메서드로 해당 인덱스의 문자(char)를 가져온다. 이 문자가 p 혹은 P일 경우 int p를 카운트해주고y 혹은 Y일 경우 int y를 카운트해주었다. 참고로 String은 참조형 변수 이기 때문에 equals 메서드를 사용하지만 char는 기본형이기..
99클럽 코테 스터디 1일차 TIL (미들러): [백준][Java] 1072 게임 - 실버3
·
ProblemSolve/항해99 코테스터디
문제 보기https://www.acmicpc.net/problem/1072  풀이1. 최소 몇 판 더 해야 하는지 구하기최소 몇 판 이라는 말을 보고 바로 어떻게 풀어야 하는지 유추해 낼 수 있었다.딱 5일 전 풀었던 문제와 비슷했기 때문이다.이 문제는 이분 탐색 Lower bound로 풀 수 있다. 같은 백준의 실버3 문제인 IF문 좀 대신 써줘 포스팅을 참고하면 좋을 것 같다.https://mountain-noroo.tistory.com/205 [백준][Java] 19637 IF문 좀 대신 써줘 - 실버3문제 보기https://www.acmicpc.net/problem/19637  풀이실버 3인데 막혀서 다른 사람들의 풀이를 참고하면서 했다.보통 30분 안에 끝내고 넘어 가는데 자존심과 자존감이 조금..