ETC/Algorithm(25)
-
BaekJoon 3190 - 뱀
어렵지만 재밌게 푼 문제! 문제를 이해하는 데 어려움이 컸고, 완전히 이해한 후 문제를 푸니 재밌게 풀 수 있게 되었다 〰️ 일단, 문제를 보고 솔루션을 찾아가 보도록 합시다 ❗️ 문제 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임은 NxN 정사각 보드위에서 진행되고, 몇몇 칸에는 사과가 놓여져 있다. 보드의 상하좌우 끝에 벽이 있다. 게임이 시작할때 뱀은 맨위 맨좌측에 위치하고 뱀의 길이는 1 이다. 뱀은 처음에 오른쪽을 향한다. 뱀은 매 초마다 이동을 하는데 다음과 같은 규칙을 따른다. 먼저 뱀은 몸길이를 늘려 머리를 다음칸에 위치시킨다. 만약 이동한 칸..
2020.06.06 -
BaekJoon 3079 - 입국심사
처음 봤을 때 어떻게 풀어야 할지 굉장히 막막했던 문제다,,, 아직 신생아 뺨치는 알린이인 나에겐 굉장히 고통스러웠던 문제 😢 몇 시간 동안 풀다 구글님께 도움을 받아 문제를 풀 수 있었다. 일단 문제를 살펴보고 솔루션을 생각하자 〰️ 문제 상근이와 친구들은 오스트레일리아로 여행을 떠났다. 상근이와 친구들은 총 M명이고, 지금 공항에서 한 줄로 서서 입국심사를 기다리고 있다. 입국심사대는 총 N개가 있다. 각 입국심사관이 심사를 하는데 걸리는 시간은 사람마다 모두 다르다. k번 심사대에 앉아있는 심사관이 한 명을 심사를 하는데 드는 시간은 Tk이다. 가장 처음에 모든 심사대는 비어있고, 심사를 할 준비를 모두 끝냈다. 상근이와 친구들은 비행기 하나를 전세내고 놀러갔기 때문에, 지금 심사를 기다리고 있는 ..
2020.06.04 -
BaekJoon 6603 - 로또, 조합찾기
문제 독일 로또는 {1, 2, ..., 49}에서 수 6개를 고른다. 로또 번호를 선택하는데 사용되는 가장 유명한 전략은 49가지 수 중 k(k>6)개의 수를 골라 집합 S를 만든 다음 그 수만 가지고 번호를 선택하는 것이다. 예를 들어, k=8, S={1,2,3,5,8,13,21,34}인 경우 이 집합 S에서 수를 고를 수 있는 경우의 수는 총 28가지이다. ([1,2,3,5,8,13], [1,2,3,5,8,21], [1,2,3,5,8,34], [1,2,3,5,13,21], ..., [3,5,8,13,21,34]) 집합 S와 k가 주어졌을 때, 수를 고르는 모든 방법을 구하는 프로그램을 작성하시오. 입력 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있다. 첫 ..
2020.06.01 -
Combination
안녕하세요 〰️ 오늘은 조합combonation에 대해 알아볼 예정입니다 ❗️ 백준 6603 번 문제를 푸는 데 사용해보니 어렵더라구요 🤣 그래서 정리도 하고 제대로 알아볼 겸 포스팅해보기로 했습니다 〰️ ============ INDEX ============ 조합❓ 조합 구현 조합 구현 - JAVA CODE ================================ 첫 번째, 조합❓ 조합, 간단하게 무엇인지 파악해볼까요 〰️ N개의 숫자 중, R개의 숫자를 순서없이 뽑는 것 물론 응용을 통해 숫자가 아닌 스트링이나 다른 객체가 될 수도 있겠죠? 예시를 보면서 알아볼게요. 다음의 그림과 같이 N(=4)개의 숫자가 있고, 무작위로 2개를 뽑는다고 생각해보겠습니다. 4개 숫자들 중에서 2개의 숫자를 순서 ..
2020.06.01 -
BFS - Breadth First Search
안녕하세요 ❗️ 오늘은 굉장히 유명한 알고리즘인 BFS/DFS 중 BFS를 집중적으로 살펴보려고 합니다. 살펴보기 전, BFS/DFS를 적용하는데 있어서 '그래프 Graph'라는 자료구조를 사용하는데요. 지난 포스팅으로 '그래프 graph' 자료구조를 소개해드렸습니다. 만약, 그래프 자료구조가 무엇인지 모르시는 분들은 한 번쯤 읽고 가시는 게 좋을 듯 싶습니다 〰️ 이제부터 BFS가 무엇인지 알아가보도록 하겠습니다 ❗️ BFS ❓ 그래프의 모든 노드를 순회하고자 할때, 인접한 노드들을 우선으로 방문하도록 구현합니다. BFS와 비슷한 개념이 DFS는 Depth First Search이 있는데요. DFS는 시작 노드를 기준으로 다음 노드를 선택할 때, 선택한 분기를 끝까지 순회하고 나서 다른 분기를 확인합니..
2020.05.26 -
Graph
안녕하세요 〰️ 사실 오늘은 자주 사용된다고 하는 알고리즘 중 하나인 BFS/DFS에 대해서 알아볼 예정이었는데요... 그 전에 그래프 자료구조를 잠깐 훑고 가려고 했다가,,, 제 욕심때문에 그래프 자료구조 포스팅이 되어버렸습니다 🤣 그래프를 순회하는 로직으로 BFS/DFS을 사용합니다. 반대로, BFS/DFS를 사용하는데에 있어서는 그래프 자료구조를 사용하죠. 그래서 BFS/DFS를 알아가기 전에, 그래프라는 자료구조를 선수로 알아가보는 단계로 준비해보았습니다 🔥 그래프 Graph ? '노드node와 노드들을 연결하는 간선edge를 담고있는 자료구조'입니다. 따라서 그래프를 사용하면 연결되어 있는 객체 간의 관계를 표현할 수 있습니다. 이 때, 간선은 방향성이 있을 수도 있고, 없을 수도 있죠. 방향성..
2020.05.25