99클럽 코테 스터디 24일차 TIL (챌린저): [백준][Java] 2437 저울 - 골드2
·
ProblemSolve/항해99 코테스터디
문제 보기https://www.acmicpc.net/problem/2437  풀이그리디를 사용해 문제를 풀었다. int num = 0;while (true) { num++; int sum = 0; for(int j = N - 1; j >= 0; j--) { if(num - sum >= arr[j]) { sum += arr[j]; } if(sum == num) { break; } } if(sum != num) { bw.write(num + "\n"); break; }}arr은 정렬 된 추 배열이다. 그냥 1부터 더해가며 이 수를 계산할 수 있는지 검토해 보았다.큰 수 부터 내려가며 num - sum보다 작을 경우 sum에 더해 주고 만약 sum과..
99클럽 코테 스터디 23일차 TIL (미들러): [프로그래머스][Java] 소수 찾기 - level2
·
ProblemSolve/항해99 코테스터디
문제 보기https://school.programmers.co.kr/learn/courses/30/lessons/42839 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  풀이1. 아리스토텔레스의 체2. 백트래킹두 가지 알고리즘을 사용하였다.  아리스토텔레스의 체 for(int i = 2; i 소수를 구하는 빠른 방법이다.최대 범위까지의 숫자들을 전부 소수인지, 소수가 아닌지 판별 해 놓는 것인데,이전에 등장한 수의 배수들은 전부 소수가 아니라고 체크해 둔다는 것이다.0, 1은 판별에서 제외한다. 백트래킹 private void dfs(String numbers, boolean[] visited, i..
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클럽 코테 스터디 21일차 TIL (챌린저): [백준][Java] 17182 우주 탐사선 - 골드3
·
ProblemSolve/항해99 코테스터디
문제 보기https://www.acmicpc.net/problem/17182  풀이이전 노드에 다시 방문할 수 있다는 점이 조금 어려웠다.그냥 탐색하지 않은 노드만 방문해도 된다면 쉬웠을텐데 말이다. 그래서 "탐색하지 않은 노드만 방문"해도 되게 하는 법을 생각했다.각 노드에서 다른 노드들로의 최단거리를 미리 구해 놓는 것이다.예시의 이 그래프를 보며 각 노드에서 최단 거리를 유도해보자.답은 이렇게 될 것이다. 그럼 이제 새로 구한 최단거리 그래프를 바탕으로 모든 경로를 탐색해보고 min 값을 구해볼 수 있겠다.  private static void dfs(int start, int cur, int[][] arr, int[][] dist) { for(int i = 0; i dist[start][..
99클럽 코테 스터디 20일차 TIL (챌린저): [백준][Java] 1083 소트 - 골드4
·
ProblemSolve/항해99 코테스터디
문제 보기https://www.acmicpc.net/problem/1083  풀이로직은 쉬운데 놓치기 쉬운 부분이 많아서 힘들었다. 내가 생각한 방법은 이렇다.첫 start는 0으로 둔다.start부터 start+S까지 값을 검사한다. (물론 start+S가 N을 넘어가지 않아야 함.)그중 max 값을 뽑는다. 위와 같은 상황이라면 5이다.그럼 이 max의 인덱스부터 start까지 양 옆의 숫자들을 교환한다.여기서는 3과 5만 교환하면 끝이다.  한 번 옮겼기 때문에 남은 s의 값은 2이다.이 값은 max의 index - start로 정한다.이 로직대로라면 맨 앞에 올 수 있는 최고로 큰 수가 왔다는 뜻이니start를 ++ 해준다.다음으로 넘어가자.이번엔 start와 max의 index가 같다.그렇다면 ..
혼공학습단 12기 - 혼공네트 (2주차)
·
공부 기록/혼공학습단
혼자 공부하는 네트워크혼자 공부하는 네트워크#진도기본 미션선택 미션1주차(7/1 ~ 7/7)Chapter 01OSI 모델 및 TCP/IP 모델 차이점을 정리하고, 이를 바탕으로 네트워크 계층 구조를 작성해 보기(p. 62 참조)Ch.01(01-1) 확인 문제 2번(p.35), (01-3) 확인 문제 2번(p.73) 풀고 설명하기2주차(7/8 ~ 7/14)Chapter 02Ch.02(02-1) 확인 문제 2번(p.87), (02-3)확인 문제 4번(p.111) 풀고 설명하기집에 있는 케이블에 표기된 명칭 표기를 바탕으로 케이블 구조 및 전송속도 가늠해 보기3주차(7/15 ~ 7/21)Chapter 03Ch.03(03-1) 확인 문제 1번(p.147), (03-3) 확인 문제 2번(p.187) 풀고 설명하기..
99클럽 코테 스터디 19일차 TIL (챌린저): [백준][Java] 1022 소용돌이 예쁘게 출력하기 - 골드3
·
ProblemSolve/항해99 코테스터디
문제 보기https://www.acmicpc.net/problem/1022  풀이이 문제의 핵심은 특정 좌표에 어떤 수가 들어올지 점화식을 구하는 것이다.이 표를 뜯어보며 어떤 특징을 갖고 있는지 살펴보자. 1. 구역 찾기우선 위와 같이 구역을 나눠 볼 수 있을 것 같다.그럼 특정 좌표의 구역이 어디에 해당하는지 어떻게 구하면 좋을까?x(c), y(r)의 값 중 절댓값이 더 큰 쪽을 고르면 되지 않을까?int l = Math.max(Math.abs(r), Math.abs(c)); 2. 구역 시작 수 구하기구역을 찾았으니 이 구역의 시작 수부터 돌면서 숫자를 구해볼 수 있을 것 같다.1은 무시하고 시작 수를 확인하자.2, 10, 26, 501^2 + 1, 3^2 + 1, 5^2 + 1, 7^2 + 1.....
solved 골드1 승급
·
잡담
조금만 더 하면 상위 10퍼 이내에 들 수 있을 것 같다그리고 실버 문제는 풀어도 AC에 반영이 되지 않는 시기가 왔다. 지금 하고 있는 코테 스터디랑 틈틈이 하는 바킹독 강의 공부를 하다 보면 언젠간 플래티넘도 찍을 수 있겠지?거기서 부터는 문제 기여를 할 수 있으니 기대가 된다.화이팅!