[BOJ/Gold 3] 백준 34421 Knight Walk(C++)
·
BOJ/Gold
문제 링크https://www.acmicpc.net/problem/34421 문제Before we get into the problem, let's go over algebraic notation in chess. Algebraic notation refers to the 'names' of the squares on a chessboard. Starting from left to right (from white's perspective), the columns are named a--h. The rows are then named 1--8 in increasing order (again from white's perspective). Each square's 'name' is the column let..
[BOJ/Platinum 3] 백준 1170 선인장의 개수(C++)
·
BOJ/Platinum ~ Diamond
문제 링크https://www.acmicpc.net/problem/1170 문제정점 선인장은 다음 조건을 만족하는 연결된 무방향 그래프이다.모든 정점은 많아야 하나의 단순 사이클에 포함된다.단순 사이클이란 사이클 중에서 시작과 끝을 제외하고 각 정점들이 많아야 한 번씩 나타날 때이다.다음 그림은 정점 선인장이다. 그래프 G의 정점의 개수 N이 주어진다. 정점은 1번부터 N번까지 번호가 매겨져 있다. 그래프의 간선이 어떻게 연결되어 있는지가 주어질 때, 그래프 G의 연결 요소 중 정점 선인장인 것의 개수를 출력하는 프로그램을 작성하시오.그래프 G의 연결 요소란 정점의 집합인데, 집합 내의 모든 쌍의 정점이 경로로 연결되어 있고, 집합 밖의 정점과 집합 내의 정점이 연결되어 있지 않을 때이다. 입력첫째 줄..
[BOJ/Platinum 2] 백준 22960 미팅(C++)
·
BOJ/Platinum ~ Diamond
문제 링크https://www.acmicpc.net/problem/22960 문제 이성 친구를 사귀고 싶어서 국렬이가 주선한 미팅에 신청한 남성 N명, 여성 N명이 있다.서로에게 호감을 갖는 M개의 남녀의 쌍이 주어진다. 국렬이는 미팅에 참여한 남성들 중 임의로 몇 명을 선정해 미팅을 진행하려고 한다. 국렬이가 선정한 남성을 보고, 그들 중 적어도 한 명과 호감을 갖는 여성들은 미팅에 참가하게 된다. 만약 미팅에 참가한 남성의 수가 여성의 수보다 작거나 같다면 미팅은 원활하게 진행 될 것이다. 반대로 남성의 수가 더 많은 경우 미팅을 원활하게 진행할 수 없다. 그림의 예시 경우에는 2번째 남성과 3번째 남성을 선정했을 때, 이들과 호감을 갖는 여성이 2번째 여성 한 명이고, 남성의 수가 더 많기에 미팅..
[BOJ/Platinum 2] 백준 15899 트리와 색깔(C++)
·
BOJ/Platinum ~ Diamond
문제 링크https://www.acmicpc.net/problem/15899 문제1부터 N까지의 번호가 부여된 N개의 정점과 N-1개의 간선으로 구성된 트리가 있다. 이 트리의 루트는 1번 정점이며, 임의의 한 정점과 다른 정점 사이의 경로가 반드시 한 개 존재한다.트리의 각 정점은 특정 색깔을 가지고 있다. 편의상 색깔은 1 이상 C 이하의 자연수로 표현된다. 이때, 질의 f(v, c)를 다음과 같이 정의하자.f(v, c) : 정점 v가 루트인 부트리(sub-tree)에서 색깔이 c 이하인 정점의 개수M개의 질의 f(vi, ci)가 주어질 때, 각 질의에 대한 답을 계산하는 프로그램을 작성하시오. 입력첫 번째 줄에 정점의 수를 나타내는 N(1 ≤ N ≤ 2 × 10^5), 질의의 개수를 나타내는 M(1..
[Programmers/Level 3] 양과 늑대(C++)
·
Programmers/Level 3
문제 링크 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제2진 트리 모양 초원의 각 노드에 늑대와 양이 한 마리씩 놓여 있습니다. 이 초원의 루트 노드에서 출발하여 각 노드를 돌아다니며 양을 모으려 합니다. 각 노드를 방문할 때 마다 해당 노드에 있던 양과 늑대가 당신을 따라오게 됩니다. 이때, 늑대는 양을 잡아먹을 기회를 노리고 있으며, 당신이 모은 양의 수보다 늑대의 수가 같거나 더 많아지면 바로 모든 양을 잡아먹어 버립니다. 당신은 중간에 양이 늑대에게 잡아먹히지 않도록 하면서 최대한 많은 수의 양을 모아서 다시 루트 노드로 돌아오려 합니다. 예를 들어, 위 그림의 경우(루트 노드에는 항상 양이 있습니..
[BOJ/Gold 4] 백준 16929 Two Dots(C++)
·
BOJ/Gold
문제 링크https://www.acmicpc.net/problem/16929 문제Two Dots는 Playdots, Inc.에서 만든 게임이다. 게임의 기초 단계는 크기가 N×M인 게임판 위에서 진행된다. 각각의 칸은 색이 칠해진 공이 하나씩 있다. 이 게임의 핵심은 같은 색으로 이루어진 사이클을 찾는 것이다.다음은 위의 게임판에서 만들 수 있는 사이클의 예시이다. 점 k개 d1, d2, ..., dk로 이루어진 사이클의 정의는 아래와 같다.모든 k개의 점은 서로 다르다. k는 4보다 크거나 같다.모든 점의 색은 같다.모든 1 ≤ i ≤ k-1에 대해서, di와 di+1은 인접하다. 또, dk와 d1도 인접해야 한다. 두 점이 인접하다는 것은 각각의 점이 들어있는 칸이 변을 공유한다는 의미이다.게임판의 ..
[BOJ/Gold 3] 백준 33579 디미 그래프(C++)
·
BOJ/Gold
문제 링크https://www.acmicpc.net/problem/33579 문제디미 그래프란 그림과 같이 정점의 위치와 간선의 모양을 적절히 조정해 디미고 로고 모양으로 만들 수 있는 그래프를 의미한다. 즉 디미 그래프는 다음 조건을 모두 만족하는 무향 단순그래프로 정의할 수 있다.임의의 서로 다른 두 정점을 연결하는 경로가 하나 이상 존재한다.사이클이 오직 하나 존재한다.사이클에 포함되는 정점과 사이클에 포함되지 않는 정점을 연결하는 간선은 정확히 하나 존재한다.사이클에 포함되지 않는 정점의 차수는 2 이하이다. N개의 정점과 M개의 간선으로 이루어진 그래프가 주어질 때 이 그래프가 디미 그래프인지 판단하는 프로그램을 작성하시오. 정점 번호는 1부터 N까지 매겨져 있다. 입력첫 번째 줄에 두 정수 N..
[BOJ/Platinum 4] 백준 4966 Cards(C++)
·
BOJ/Platinum ~ Diamond
문제 링크https://www.acmicpc.net/problem/4966 문제There are many blue cards and red cards on the table. For each card, an integer number greater than 1 is printed on its face. The same number may be printed on several cards.A blue card and a red card can be paired when both of the numbers printed on them have a common divisor greater than 1. There may be more than one red card that can be paired with ..
[BOJ/Platinum 4] 백준 4376 Gopher II(C++)
·
BOJ/Platinum ~ Diamond
문제 링크https://www.acmicpc.net/problem/4376 문제The gopher family, having averted the canine threat, must face a new predator.The are n gophers and m gopher holes, each at distinct (x, y) coordinates. A hawk arrives and if a gopher does not reach a hole in s seconds it is vulnerable to being eaten. A hole can save at most one gopher. All the gophers run at the same velocity v. The gopher family need..
[BOJ/Platinum 2] 백준 1348 주차장(C++)
·
BOJ/Platinum ~ Diamond
문제 링크https://www.acmicpc.net/problem/1348 문제세준 주차장은 R×C크기의 직사각형 모양이다. 세준 주차장에는 N개의 차와, M개의 주차 구역이 있다. 그리고, 모든 차는 주차 구역에 주차하려고 한다. 교통 제한 때문에, 차는 주차장의 경계와 평행하게만 움직일 수 있고, 모든 차는 1초에 한 칸씩 움직일 수 있다.보통 모든 차는 현재 위치에서 가장 가까운 위치에 있는 주차 구역에 주차를 하려고 한다. 하지만, 다음과 같이 생긴 주차장이라면 현재 위치에서 가장 가까운 위치에 주차하는 것이 비효율적이다..C.....P.X...XX.......X..PXX.....C..... ‘C’는 차이고, 'P‘는 주차 구역, 'X'는 벽이고, '.'은 빈 공간이다.만약 아래에 있는 차가 현재..
[BOJ/Platinum 4] 백준 30976 사랑의 큐피드(C++)
·
BOJ/Platinum ~ Diamond
문제 링크https://www.acmicpc.net/problem/30976 문제진주 나들이를 온 보선이는 목이 너무 말라서 경상국립대 앞에 있는 한 카페에 들어갔다. 그 카페에서는 진주교육대 여학생 N명과 연암공과대 남학생 M명이 모여서 미팅을 하고 있었다.이 미팅에는 신기한 사실이 하나 있는데, 바로 미팅 중인 학생들의 상대에 대한 선호 여부는 키라는 요소 한 가지에만 영향을 받는다는 것이다. 구체적으로, 여학생들은 자신의 선호 기준보다 키가 작은 남학생만을 선호한다. 그리고 남학생들은 자신의 선호 기준보다 키가 큰 여학생만을 선호한다.마침 이 카페에는 자칭 사랑의 큐피드 재혁이도 있었다. 이 미팅에 관심이 생긴 재혁이는 미팅 중인 테이블에서 오가는 얘기를 열심히 엿들어 미팅 중인 모든 학생들의 선호..
[BOJ/Gold 5] 백준 31423 신촌 통폐합 계획(C++)
·
BOJ/Gold
문제 링크https://www.acmicpc.net/problem/31423 문제극단적인 출산율 감소로 인해 신촌 지역 N개 대학교가 하나의 학교로 통합되었다.기나긴 회의 끝에, 통합된 학교의 이름은 N개 대학교의 이름을 이어 붙여서 정해졌다. 회의에서 통합된 학교의 이름을 정한 방법은 다음과 같다. N개 대학교의 이름 s1, s2, ⋯, sN을 일렬로 나열한다. 이후 다음의 과정을 N − 1번 반복한다. si, sj가 빈 문자열이 아닌 서로 다른 두 정수 i, j를 고른다. si의 뒤쪽에 sj를 이어 붙인다. sj를 빈 문자열로 바꾼다.모든 과정이 끝난 뒤에는 빈 문자열이 아닌 sk가 하나 남게 되며, 이때 sk가 통합된 학교의 이름이 된다. N개 대학교의 이름 s1, s2, ⋯, sN과 회의에서 고른..
[BOJ/Silver 1] 백준 15900 나무 탈출(C++)
·
BOJ/Silver
문제 링크https://www.acmicpc.net/problem/15900 문제평소에 사이가 좋지 않던 성원이와 형석이가 드디어 제대로 한 판 붙으려고 한다. 성원이와 형석이 둘과 모두 똑같이 친한 인섭이가 대결 종목을 정해 가져왔다. 바로 '나무 탈출' 이라는 보드게임이다.'나무 탈출' 은 N개의 정점이 있는 트리 모양으로 생긴 게임판과 몇 개의 게임말로 이루어진다. 트리의 각 정점에는 1번부터 N번까지 번호가 붙어있다. 1번 정점은 '루트 노드' 라고 불리며, 이 루트 노드를 중심으로 정점 간에 부모-자식 관계가 만들어진다. 자식이 없는 노드는 '리프 노드' 라고 불린다.이 게임은 두 사람이 번갈아 가면서 게임판에 놓여있는 게임말을 움직이는 게임이다. 처음에는 트리의 모든 리프 노드에 게임말이 하나..
[BOJ/Gold 5] 백준 17070 파이프 옮기기 1(Java)
·
BOJ/Gold
문제 링크https://www.acmicpc.net/problem/17070 문제유현이가 새 집으로 이사했다. 새 집의 크기는 N×N의 격자판으로 나타낼 수 있고, 1×1크기의 정사각형 칸으로 나누어져 있다. 각각의 칸은 (r, c)로 나타낼 수 있다. 여기서 r은 행의 번호, c는 열의 번호이고, 행과 열의 번호는 1부터 시작한다. 각각의 칸은 빈 칸이거나 벽이다.오늘은 집 수리를 위해서 파이프 하나를 옮기려고 한다. 파이프는 아래와 같은 형태이고, 2개의 연속된 칸을 차지하는 크기이다.  파이프는 회전시킬 수 있으며, 아래와 같이 3가지 방향이 가능하다.  파이프는 매우 무겁기 때문에, 유현이는 파이프를 밀어서 이동시키려고 한다. 벽에는 새로운 벽지를 발랐기 때문에, 파이프가 벽을 긁으면 안 된다. ..
[BOJ/Gold 5] 백준 31476 :blob_twintail_thinking:(C++)
·
BOJ/Gold
문제 링크 https://www.acmicpc.net/problem/31476 31476번: :blob_twintail_thinking: 첫째 줄에는 양갈래 굴의 방 중 가장 깊은 곳의 깊이 $D(1 \le D \le 12)$와 파손된 길목의 수 $N(0 \le N \le 2^D-2)$, 각 블롭 세력이 기본적으로 탐색하는 시간인 $U(1 \le U \le 100)$와 양갈래 블롭들이 갈라 www.acmicpc.net 문제 블롭들은 늘 새로움을 추구해 왔다. 이번에도 블롭들은 새로운 느낌을 원하였고, 이에 블롭들은 매일매일 하늘에 기도하게 된다. 이 기도를 들은 토카는 블롭들에게 양갈래 머리를 하사하였으며, 블롭들은 대 양갈래 시대를 맞게 된다. 그러나, 일부 블롭들은 거기서 더 새로운 헤어 스타일을 추..