본문 바로가기
반응형

전체 글101

[ 알고리즘 ] 코딩 - Programmers - H-index.java 문제 링크 programmers.co.kr/learn/courses/30/lessons/42747 코딩테스트 연습 - H-Index H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표 programmers.co.kr * 프로그래머스 - Level 2 - (자바)H_index - 정렬 * H-index라는 문제 자체를 이해하는데 오래걸렸다 * [5,5,5,5]인 경우에 4편중 4번이상 인용된 논문이 4편이상이고 나머지 논문이 4번이하(나머지논문없음) 이므로 H-index는 4가 된다. * 논문 배열중에 답이 있을 것이라고 착각해버렸다! * 문제만 .. 2021. 1. 20.
[ 알고리즘 ] 코딩 - Programmers - 피보나치수.java 문제 링크 programmers.co.kr/learn/courses/30/lessons/12945 코딩테스트 연습 - 피보나치 수 피보나치 수는 F(0) = 0, F(1) = 1일 때, 1 이상의 n에 대하여 F(n) = F(n-1) + F(n-2) 가 적용되는 수 입니다. 예를들어 F(2) = F(0) + F(1) = 0 + 1 = 1 F(3) = F(1) + F(2) = 1 + 1 = 2 F(4) = F(2) + F(3) = 1 + 2 = 3 F(5) = F(3) + F(4) = programmers.co.kr * 프로그래머스 - Level 2 - 피보나치 - 일반 수학(DP) 기본적인 DP로 풀었다. * 피보나치수를 계산하여 그대로 출력한다! * 엄청나게 큰 숫자가 다루어 지므로 각 숫.. 2021. 1. 17.
[ 알고리즘 ] 코딩 - Programmers - 위장.java 문제 링크 programmers.co.kr/learn/courses/30/lessons/42578 코딩테스트 연습 - 위장 programmers.co.kr * 프로그래머스 - Level 2 - (자바)위장 - HashMap과 수학적 조합의 이용 * 수학적 조합을 이용해서 경우의 수를 구한다. * 여기서 선택을 안하는 경우도 생각 해야하므로 1가지씩 경우를 추가해준다. * 모두 선택을 하지 않는 경우도 있으므로 중복 -1을 제거해준다. import java.util.HashMap; import java.util.Map.Entry; class Solution { public int solution(String[][] clothes) { int n = clothes.length; HashMap m.. 2021. 1. 15.
[ 알고리즘 ] 코딩 - Programmers - 후보키.java 문제 링크 programmers.co.kr/learn/courses/30/lessons/42890 코딩테스트 연습 - 후보키 [["100","ryan","music","2"],["200","apeach","math","2"],["300","tube","computer","3"],["400","con","computer","4"],["500","muzi","music","3"],["600","apeach","music","2"]] 2 programmers.co.kr * 프로그래머스 - Level2 - (자바)후보키 - HashSet과 HashMap을 이용한 중복제거 HashSet에 익숙하지 않아 많이 당황한 문제! 여러가지 자료구조에 더 많이 익숙해져야겠다! * 행렬의 길이만큼의 후보키 조합이.. 2021. 1. 13.
[ 알고리즘 ] 코딩 - 백준 - 1655 - 가운데를 말해요.java 문제 링크 www.acmicpc.net/problem/1655 1655번: 가운데를 말해요 첫째 줄에는 수빈이가 외치는 정수의 개수 N이 주어진다. N은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수이다. 그 다음 N줄에 걸쳐서 수빈이가 외치는 정수가 차례대로 주어진다. 정수는 -1 www.acmicpc.net * 백준 - Gold 2 - (자바)가운데를 말해요 - 힙 구조를 가진 우선순위 큐 활용하기 * 실행 시간이 0.1초다. 뭘 하든 빠른걸로 입출력 하자 * step 1 * 중간 값을 기준으로 작은 쪽과 큰 쪽을 나누기 위해 * 힙 구조를 가진 두개의 우선순위 큐를 이용한다 * step 2 * 중간 값을 계속 갱신해가면서 왼쪽 오른쪽 우선순위 큐를 갱신해간다 * step 3.. 2021. 1. 8.
[ 알고리즘 ] 코딩 - 백준 1647 - 도시분할계획.java 문제 링크 www.acmicpc.net/problem/1647 1647번: 도시 분할 계획 첫째 줄에 집의 개수N, 길의 개수M이 주어진다. N은 2이상 100,000이하인 정수이고, M은 1이상 1,000,000이하인 정수이다. 그 다음 줄부터 M줄에 걸쳐 길의 정보가 A B C 세 개의 정수로 주어지는데 A번 집 www.acmicpc.net * 백준 - (자바)도시분할계획 - MST(최소 스패닝 트리) * 한 마을을 2개의 구역으로 나눈다. N개의 집과 M개의 길이 있다. 길은 양방향. 각 분리된 마을은 마을 * 안에서 집들이 서로 연결이 되어있어야 한다. 필요없는 길을 모두 없애고 남은 최소의 길의 유지비를 구하자. * 정점10만개. 길 100만개.. ​ * 문제만 보고 마을을 나누고~.. 2021. 1. 8.
[ 알고리즘 ] 코딩 - Programmers - 네트워크.java 문제 링크 programmers.co.kr/learn/courses/30/lessons/43162 코딩테스트 연습 - 네트워크 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있 programmers.co.kr * 프로그래머스 - Level3 - (자바)네트워크 - Queue를 이용한 BFS * 연결된 Vertex들은 하나의 네트워크로 보기 때문에 시작하는 Vertex에서 * 연결된 모든 Vertex는 BFS를 순회하며 방문을 체크한다. * 어디에도 연결이 되지 않은 독자적 Vertex는 따로 더해준다. * 방문체크와 BFS를 이용하여 구현! import.. 2021. 1. 8.
[ 알고리즘 ] 코딩 - Programmers - 섬연결하기.java 문제 링크 programmers.co.kr/learn/courses/30/lessons/42861 코딩테스트 연습 - 섬 연결하기 4 [[0,1,1],[0,2,2],[1,2,5],[1,3,1],[2,3,8]] 4 programmers.co.kr * 프로그래머스 - Level 3 - (자바)섬 연결하기 - 기본적인 크루스칼 * 기본적인 크루스칼과 같다 * 모든 간선을 가중치 기준으로 정렬 * 출발지와 도착지의 집합을 비교 * 서로 다른 집합이라면 하나의 집합으로 합침 * 반복 import java.util.Comparator; import java.util.PriorityQueue; public class 섬연결하기 { static class Solution { static class Isla.. 2021. 1. 7.
[ 알고리즘 ] 코딩 - Programmers - 삼각달팽이.java 문제 링크 programmers.co.kr/learn/courses/30/lessons/68645 코딩테스트 연습 - 삼각 달팽이 5 [1,2,12,3,13,11,4,14,15,10,5,6,7,8,9] 6 [1,2,15,3,16,14,4,17,21,13,5,18,19,20,12,6,7,8,9,10,11] programmers.co.kr * 프로그래머스 - Level 2 - (자바)삼각달팽이 - 기본 배열 돌리기 * 2차원 배열을 만들어 순서에 맞게 넣기 * 세로 가로 대각선의 3가지 부분으로 나누어 생각 * 인덱스 관리를 잘 하는 것이 관건 class Solution { public int[] solution(int n) { int max = n*(n+1)/2; int map[][] = ne.. 2021. 1. 7.
반응형