| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- Android
- 다이나믹 프로그래밍
- backjoon
- 알고리즘
- 백준
- dp
- IT
- 멀티스레드
- 모바일
- Java
- 프로그래머스
- 자바
- 백준 알고리즘
- 데이터베이스
- 개발
- 익명객체
- 네트워크
- 삼성SW테스트
- BFS
- 현대오토에버 코딩테스트
- 언더라이터
- 삼성sw문제
- 익명클래스
- 조합
- 안드로이드
- 재귀함수
- 금융IT
- CKLU
- 너비탐색
- dfs
- Today
- Total
목록Algorithm/BackJoon (25)
Limky 삽질블로그
백준 시뮬레이션 문제 #17140- 이차원 배열과 연산 https://www.acmicpc.net/problem/17140 생각보다 간단한 축에 속하는 시뮬레이션 문제! 이 문제의 포인트는 "한 행 또는 열에 있는 수를 정렬하려면, 각각의 수가 몇 번 나왔는지 알아야 한다. 그 다음, 수의 등장 횟수가 커지는 순으로, 그러한 것이 여러가지면 수가 커지는 순으로 정렬한다. 그 다음에는 배열 A에 정렬된 결과를 다시 넣어야 한다. 정렬된 결과를 배열에 넣을 때는, 수와 등장 횟수를 모두 넣으며, 순서는 수가 먼저이다." 이부분을 어떻게 비교하고 정렬을 할 것인가이다. 나는 compareTo를 커스터마이징해서, 비교하여 정렬을 하도록 소스를 짰다. 전체소스 import java.util.Arrays; impo..
백준 시뮬레이션 문제 #16235- 나무재태크 https://www.acmicpc.net/problem/16235 사용한 개념 시뮬레이션 문제입니다. 문제에서 주어진 조건에 따라 각 단계별 로직을 짜고 전체 프로세스를 만드는 문제입니다. 별다른 개념은 필요하지 않습니다. if문과 for문 등등의 조건/반복문을 이용해서 자기 스타일대로 짜면 되는것이죠.. 이 문제에서 힘들었던 점은 시간초과를 어떻게 방지하냐 입니다.. 제가 삽질하면서 느꼈던 내용은 아래와 같습니다. 1. ArrayList보단 LinkedList가 성능이 더 좋다. 2. LinkedList를 자주 add하고 poll하는것은 많은 스택오버플로우를 낼 수 있다. 따라서 get으로 접근하거나 iterator를 적절히 사용하는 것이 성능에 좋다. ..
백준 DFS 문제 #16234- 인구이동 https://www.acmicpc.net/problem/16234 사용한 개념 DFS 문제입니다. BFS로도 할 수 있을 것 같은데, 저는 DFS 재귀 연습도 할겸 DFS 했습니다. 연합을 이룰 수 있는 국가를 구하고, 연합 국가의 총 인구수와 국가를 나누는 간단한 DFS문제입니다. 제가 생각한 프로세스는 다음과 같습니다. 1. DFS로 조건에 맞는 연합국가를 구한다. 2. DFS탐색시 조건에 맞는 국가는 Sticker를 붙여서 연합국을 구별하도록 한다. 3. 각 연합국안에서 인구이동 실시. 4. 1-3 계속 반복...더이상 인구이동이 없을 때까지... 딱히 어려운건 아니였으나...시간차를 두고 풀어봤는데, 다르게 소스를 짰네요...ㅎㅎ.. 간혹 시간초과가 뜨는..
백준 조합 문제 #14889 - 스타트와 링크 https://www.acmicpc.net/problem/14889 사용한 개념 기본적으로 조합을 구하는 문제입니다. 순열과 조합에 대해서 기본적으로 구별하고 구할 수 있어야합니다. 순열과 조합에 대해서 잘 모르겠으면...아래 링크를 참고하세요.. 2019/03/23 - [프로그래밍/Java] - [JAVA] 조합,중복조합,순열,중복순열 소스 제가 생각한 프로세스는 다음과 같습니다. 1. 일단 스타트팀만 구한다. (조합) 2. 스타트 팀 팀원을 구하면, 자동으로 링크 팀을 구할 수 있음. 3. 각 팀 안에서 2명씩 짝지어, 능력치를 구한다. 4. 3번에서 구해진 각 팀의 능력치의 차이가 제일 작으면 계속 갱신... 5. 1-4 번 모든 경우에 수를 다 구한다..
백준 BFS 문제#16236- 아기상어 https://www.acmicpc.net/problem/16236 사용한 개념 BFS개념을 사용했고, 문제 안에 있는 단계적인 스텝은 시뮬레이션으로 구현했습니다. 시뮬레이션이라고 하면, for문 if문 등 조건/반복문을 열심히...코딩해서 구현하는 것을 뜻합니다 ㅎㅎ...음..해당 문제에서 주어지는 요구사항을 저는 아래의 메커니즘으로 구현했습니다. 1. 먹을 수 있는 물고기를 전부 일괄 저장해논다!2. 먹을 수 있는 물고기들끼리 가장 먼저 우선해서 먹어야할 하나의 물고기만 선별! (선별조건은 문제에 있습니다.)3. 물고기 먹은 횟수 증가 및 나이를 증가해야하는지 여부 체크!4. 먹을 물고기 위치에서 다시 상어를 위치시키고, 1번 스텝 반복! 여기서 이동할 때 포인..
백준 BFS 문제#3055- 탈출 https://www.acmicpc.net/problem/3055 사용한 개념 BFS개념을 사용했습니다.문제에서의 포인트는 다음과 같습니다. 한 단계씩 시간이 지날 때마다 고슴도치는 한칸 이동할 수 있고, 물은 상하좌우 4방향 중 물이 넘칠 수 있는 곳에 넘칩니다. 여기서 중요한 것은 물이 한단계 이후에 넘칠 위치는 고슴도치가 이동 할 수 없다는 것이 포인트 입니다. 자 아래 2가지만 명심하면 문제는 쉽습니다. 1. DFS를 통해 단계가 진행될 때, 고슴도치, 물 이 움직일 수 있는 조건들을 생각해 코딩합니다.2. 여기서 물이 한단계 이후 넘칠 공간에는 고슴도치가 이동할 수 없기 때문에 물을 먼저 넘치게하고 그다음! 고슴도치가 움직이는 매커니즘으로 작동하게 한다!! 여기..
백준 BFS 문제 #1697- 숨바꼭질 https://www.acmicpc.net/problem/1697 사용한 개념 BFS개념를 응용했습니다. 우선 방문한 곳은 check 1차원 배열로 방문여부를 체크하여 방문하지 않은 곳만 방문을 하게끔 만들고, BFS 을 통해 방문하지 않은 곳을 계속해서 탐색하도록 합니다. 여기서 포인트는 방문할 때마다 몇번만에 해당 탐색지점에 왔는지 카운트를 해주는 것입니다. *2에서 5를 찾는 경우 예를 들어 2번에서 시작한다고 치고, 2번에서 *2를 해 4번으로 갔다면, 처음 2번에는 카운트 0을 저장하고 4번에 카운트는 0+1 = 1 입니다. 다음 4번에서 +1을 했다면 5번에는 카운트 0+1+1 = 2 입니다. 이런식으로 2에서 시작해 5번으로 도착할때 카운트는 결국 카운..
백준 DFS 문제#2606 - 바이러스(Virus) https://www.acmicpc.net/problem/2606 사용한 개념 DFS깊이탐색을 이용했습니다.문제를 보면, 결국 무조건 1과 연결되어 있는 컴퓨터 갯수를 새는 것입니다. 컴퓨터 1과 연결되어 있으면 계속 깊이탐색을 해서 연결된 컴퓨터 갯수를 카운트하면 답은 쉽게 나옵니다. 컴퓨터 1과 연결되어있지 않는 또 다른 네트워크 영역은 신경쓸 필요도 없습니다. 따라서 소스에서 보면 알 수 있듯이 DFS(1)을 주어 무조건 시작은 1번 컴퓨터에서 시작함을 알 수 있습니다. DFS 기본 개념을 이해하면 쉽게 풀수있고 DFS를 잘 모르면, 어렵습니다.저는 기본적으로 인접리스트 방식의 DFS 깊이탐색을 했습니다.혹, DFS 기본개념을 모르시면 아래 링크에..
