목록Algorithm (45)
in.add()
문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/42579 코딩테스트 연습 - 베스트앨범 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 programmers.co.kr 문제 해결 방법 해시 맵과 정렬을 사용했다. import java.util.*; class Solution { ArrayList playlist; ArrayList bestalbum; HashMap genremap; HashMap albummap; class Song implements Comparable{ int id; String genre;..
문제 링크 : https://www.acmicpc.net/problem/16234 16234번: 인구 이동 N×N크기의 땅이 있고, 땅은 1×1개의 칸으로 나누어져 있다. 각각의 땅에는 나라가 하나씩 존재하며, r행 c열에 있는 나라에는 A[r][c]명이 살고 있다. 인접한 나라 사이에는 국경선이 존재한다. 모 www.acmicpc.net 문제 해결 방법 bfs로 구현했다. 시뮬레이션 문제는 한 번에 통과하는 법이 없는 거 같다.. 더 꼼꼼히 확인해라! import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; public class Main { static int N, R, L; static int[][] map; sta..
문제 링크 : https://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 문제 해결 방법 오랜만에 크루스칼을 구현해봤다. import java.util.PriorityQueue; import java.util.Scanner; public class Main { static class Node implements Comparable { int from; int to; int cost; public Node(int fro..
문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/84021 코딩테스트 연습 - 3주차_퍼즐 조각 채우기 [[1,1,0,0,1,0],[0,0,1,0,1,0],[0,1,1,0,0,1],[1,1,0,1,1,1],[1,0,0,0,1,0],[0,1,1,1,0,0]] [[1,0,0,1,1,0],[1,0,1,0,1,0],[0,1,1,0,1,1],[0,0,1,0,0,0],[1,1,0,1,1,0],[0,1,0,0,0,0]] 14 [[0,0,0],[1,1,0],[1,1,1]] [[1,1,1],[1,0,0],[0,0,0]] 0 programmers.co.kr 문제 해결 방법 새로운 newBoard와 newTable을 만든다. 도형이 들어갈 칸은 그 크기의 수로 초기화..
문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/42628 코딩테스트 연습 - 이중우선순위큐 programmers.co.kr 문제 해결 방법 priority queue를 사용하여 구현했다. import java.util.*; class Solution { public int[] solution(String[] operations) { int[] answer = new int[2]; PriorityQueue pq = new PriorityQueue(); for(String s : operations) { String[] op = s.split(" "); if(op[0].equals("I")) { pq.add(Integer.parseInt(op[1])..
문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/43162 코딩테스트 연습 - 네트워크 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있 programmers.co.kr 문제 해결 방법 dfs로 구현했다. class Solution { public int solution(int n, int[][] computers) { boolean[] chk = new boolean[n]; int answer = 0; for(int i = 0; i < n; i++) { if(!chk[i]) { dfs(computers, c..
문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/62048 코딩테스트 연습 - 멀쩡한 사각형 가로 길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다. 종이에는 가로, 세로 방향과 평행하게 격자 형태로 선이 그어져 있으며, 모든 격자칸은 1cm x 1cm 크기입니다. 이 종이를 격자 선을 programmers.co.kr 문제 해결 방법 패턴을 구해 수식으로 해결할 수 있는 문제였다. class Solution { public long solution(int w,int h) { long answer = 0; for(int i = 0; i < w; i++) answer += (Long.valueOf(h) * i) / Long.valueOf(..
문제 링크 : https://www.acmicpc.net/problem/14500 14500번: 테트로미노 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변 www.acmicpc.net 문제 해결 방법 "ㅗ" 모양을 제외하고는 map 배열의 칸마다 dfs로 depth 4만큼 갔을 때의 경우를 검사하면 된다. dfs를 타고 들어갔을때 다른 모양은 존재하지 않음! "ㅗ" 모양은 checkT 함수에서 + 모양의 가운데를 중심으로 "ㅏ", "ㅜ", "ㅓ", "ㅗ" 순서대로 더해봐서 최댓값을 구한다. import java.util.Scanner; public class Ma..