일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 비트마스킹
- 유레카
- Spring Cloud Config
- dp
- 구현
- docker-compose
- Zuul
- ZuulFilter
- Java
- 트리
- Logback
- 스프링 시큐리티
- spring cloud
- 완전 탐색
- 이분 탐색
- Gradle
- 서비스 디스커버리
- BFS
- 플로이드 와샬
- 백트래킹
- 구간 트리
- spring boot
- 게이트웨이
- 메모이제이션
- 다익스트라
- 이분 매칭
- 주울
- 도커
- 스택
- 달팽이
- Today
- Total
목록구현 (6)
Hello, Freakin world!
www.acmicpc.net/problem/2573 2573번: 빙산 첫 줄에는 이차원 배열의 행의 개수와 열의 개수를 나타내는 두 정수 N과 M이 한 개의 빈칸을 사이에 두고 주어진다. N과 M은 3 이상 300 이하이다. 그 다음 N개의 줄에는 각 줄마다 배열의 각 행을 www.acmicpc.net 쉬울 줄 알고 덤볐다가 꽤 시간을 잡아 먹은 문제입니다. 문제를 살펴보면 해야될 작업이 딱 두 가지가 떠오를 겁니다. 1. 쪼개지는 빙산의 개수 구하기 2. 배열을 순회하면서 얼음 녹이기 1번은 전형적인 그래프 컴포넌트 개수 구하기 문제입니다. 2번은 하나의 좌표가 주어질 때, 상하좌우에 0이 있는 개수만큼 값을 빼주면 되고요. 저는 1,2번 작업을 분리시켜서 구현했었는데, 시간 초과가 발생했습니다. 그래..
https://www.acmicpc.net/problem/10757 10757번: 큰 수 A+B 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 풀이 방법 1. 먼저 두 수 중 가장 긴 자릿수에 맞춰서 짧은 수 앞에 0을 붙입니다. 2. 맨 뒤에서부터 덧셈하는 하는데 합이 10 이상일 경우에 다음 자릿수 합에서 1을 더해줍니다. 아래 코드에서 주목할 만한 포인트 - 아래 구현에서 calculate(a,b)에서 항상 a b.length()) { String temp = a; a = b; b = temp; } System.out.println(calculate(a,b)); } /* 항상 b의 길이가 a보다 항상 크거나 같다 */ private stat..
www.acmicpc.net/problem/16234 16234번: 인구 이동 N×N크기의 땅이 있고, 땅은 1×1개의 칸으로 나누어져 있다. 각각의 땅에는 나라가 하나씩 존재하며, r행 c열에 있는 나라에는 A[r][c]명이 살고 있다. 인접한 나라 사이에는 국경선이 존재한다. 모 www.acmicpc.net 그래프 탐색을 이용한 구현 문제였습니다. 풀이 방식 1. 전체 나라에 대해서 DFS하면서 인구 이동이 가능한 나라끼리 그룹으로 묶어 줍니다. 2. 1에서의 정보를 바탕으로 같은 그룹의 나라들의 값을 갱신합니다. 2번이 끝나고 다시 1번을 수행합니다. 그룹으로 묶어 주는 과정에서 그 어떠 나라도 국경을 열지 않았다면 그룹의 개수를 N*N개가 됩니다. 각 그룹은 자기 자신을 포함하는 그룹이 되겠지요...
www.acmicpc.net/problem/12100 12100번: 2048 (Easy) 첫째 줄에 보드의 크기 N (1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 게임판의 초기 상태가 주어진다. 0은 빈 칸을 나타내며, 이외의 값은 모두 블록을 나타낸다. 블록에 쓰여 있는 수는 2 www.acmicpc.net 디버깅하는데 정말 하루 꼬박 걸렸던 문제였습니다. 문제를 풀면서 테스트의 중요성을 다시금 느꼈습니다. 특히 구현 문제에서는 더욱더. 구현 문제의 경우 알고리즘의 난이도 자체가 높다기보다 복잡도가 올라가면서 나타나는 실수들 때문에 발목을 잡히기 쉽습니다. 적절하게 메서드로 분리하고 메서드마다 테스트를 착실히 하는게 중요하다고 느껴졌습니다. 저도 테스트 메서드를 작성하고 나서야 짧은 시..
www.acmicpc.net/problem/14503 14503번: 로봇 청소기 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어 www.acmicpc.net 제게는 이런 종류의 약간 복잡한 구현 문제가 코테의 숨은 복병입니다. 이런 종류의 구현 문제는... 문제를 잘 이해하고 뭐 그냥 많이 풀어보면서 패턴을 많이 익혀두는 수 밖에 없겠네요. ... /* 백준 14503번 - 로봇 청소기 https://www.acmicpc.net/problem/14503 */ public class Main { static int n,m; static int[][] room; st..
https://www.acmicpc.net/problem/2446 2446번: 별 찍기 - 9 첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다. www.acmicpc.net 공백이 아닌 각 행의 문자열의 처음(head)과 끝(tail)을 추척하면서 구현했습니다. /* 백준 2446번 - 별 찍기9 https://www.acmicpc.net/problem/2446 */ public class Main { static int n; static int length; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in));..