목록분류 전체보기 (95)
in.add()
문제 링크 : 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(..
2:00~4:00 알고리즘 3 플랫폼 구름, 감독X, 검색 가능 올솔 한 사람이 많은거같다. 톡방보니 작년은 1솔컷이었다는데 난이도를 낮춘걸까.. 정답도 아니고 그냥 제출이지만 오랜만에 올솔해서 기분은 좋다!
문제 링크 : 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..
문제 링크 : https://www.acmicpc.net/problem/14503 14503번: 로봇 청소기 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어 www.acmicpc.net 문제 해결 방법 문제에서 주어진 대로 재귀로 시뮬레이션 구현했다. import java.util.Scanner; public class Main { static int N, M, r, c, d, count; static int[][] map; static int[] dr = {-1, 0, 1, 0}; static int[] dc = {0, 1, 0, -1}; public stati..
문제 링크 : https://www.acmicpc.net/problem/2293 2293번: 동전 1 첫째 줄에 n, k가 주어진다. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) 다음 n개의 줄에는 각각의 동전의 가치가 주어진다. 동전의 가치는 100,000보다 작거나 같은 자연수이다. www.acmicpc.net 문제 해결 방법 DP로 구현했다. import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int k = sc.nextInt(); int[] coin = new int[n]; for ..
문제 링크 : https://www.acmicpc.net/problem/14442 14442번: 벽 부수고 이동하기 2 첫째 줄에 N(1 ≤ N ≤ 1,000), M(1 ≤ M ≤ 1,000), K(1 ≤ K ≤ 10)이 주어진다. 다음 N개의 줄에 M개의 숫자로 맵이 주어진다. (1, 1)과 (N, M)은 항상 0이라고 가정하자. www.acmicpc.net 문제 해결 방법 벽 부수고 이동하기에서 K가 추가됐다. 벽 부수고 이동하기에서 visit 배열의 세 번째 값이 0 이면 벽을 안 부순 경우, 1 이면 벽을 부순 경우로 사용했다. 벽 부수고 이동하기 2에서는 visit 배열을 다음과 같이 boolean[][][] visited = new boolean[N][M][K + 1]; 선언하여 세번째 값으로..
문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/1844 코딩테스트 연습 - 게임 맵 최단거리 [[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,1],[0,0,0,0,1]] 11 [[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,0],[0,0,0,0,1]] -1 programmers.co.kr 문제 해결 방법 bfs! import java.util.*; class Solution { class Node { int x; int y; int cnt; public Node(int x, int y, int cnt) { this.x = x; this.y = y; this.cnt = cnt; }..
문제 링크 : https://www.acmicpc.net/problem/20055 20055번: 컨베이어 벨트 위의 로봇 길이가 N인 컨베이어 벨트가 있고, 길이가 2N인 벨트가 이 컨베이어 벨트를 위아래로 감싸며 돌고 있다. 벨트는 길이 1 간격으로 2N개의 칸으로 나뉘어져 있으며, 각 칸에는 아래 그림과 같이 1부 www.acmicpc.net 문제 해결 방법 원형 큐와 비슷하게 작동하도록 구현했다. import java.util.Scanner; public class Main { static int N, K, left, right; static int[] belt; static boolean on[]; public static void main(String[] args) { Scanner sc = n..