본문 바로가기

전체 글

(56)
[코드업] 4684 - 자물쇠 띠 모양의 자물쇠가 있다. 이 자물쇠는 한 줄로 늘어선 N개의 칸으로 이루어져 있고, 각 칸에는 1부터 N까지의 숫자가 하나씩 들어 있다. 맨 처음에는 1번째 칸부터 N번째 칸까지 1부터 N까지 숫자가 순서대로 하나씩 들어 있다. 아래 그림 1은 10개의 칸으로 이루어진 자물쇠의 맨 처음 모양을 보여주고 있다. 이 자물쇠를 잠그기 위해서는 다음과 같은 3회의 동작을 연속적으로 수행해야 한다. ➀ 왼쪽으로 밀기 ➁ 구간 뒤집기 ➂ 왼쪽으로 밀기 첫 번째 동작은 왼쪽으로 밀기이다. 칸 밖으로 밀려나간 번호는 다시 오른쪽으로 돌아온다. 그림 1의 자물쇠를 왼쪽으로 3칸 밀고 나면 그림 2와 같게 된다. 이렇게 왼쪽으로 K칸 밀기 동작을 K-왼쪽밀기라고 부른다. 이때 이다. 그 다음 동작은 정해진 구간의 숫자를..
[코드업] 4763 - 원숭이 KOI 동물원에는 N마리의 원숭이가 있고, 이 원숭이들을 수용할 수 있는 두 개의 큰 우리가 있다. 모든 원숭이들은 1부터 N 까지의 번호가 매겨져 있다. 원숭이들 사이에는 유달리 서로 앙숙관계인 원숭이들이 있어서 같은 우리에 두었을 경우 서로 싸우는 경우가 많다. 두 원숭이 x와 y가 앙숙관계라는 것은 두 원숭이 x, y가 서로 싫어하는 관계임을 의미한다. 또한, 각각의 한 원숭이에 대해 앙숙관계에 있는 원숭이들의 수는 기껏해야 세 마리라고 가정한다. 동물원에서는 원숭이들의 앙숙관계를 조사하여 아래의 두 조건을 만족하도록 원숭이들을 두 개의 우리에 나누어 수용하려고 한다. (조건 1) 각 원숭이에 대해 같은 우리 안에 있으며 앙숙관계인 원숭이는 한 마리 이하이다. (조건 2) 비어있는 우리는 없다. (..
[코드업] 2699 - 사투리 GSHS의 K모씨는 서울에서 태어났음에도 불구하고 대구에서 자라났기 때문에 사투리를 사용한다. 이 때문에 학교친구들은 K모씨에게 장난을 칠 때 사투리로 장난을 치는데 K모씨는 사투리와 서울말이 그렇게 다르지 않다는 것을 친구들에게 알리고 싶다. 그래서 K모씨는 주어진 사투리와 서울말의 subsequence(연속되는 부분 순서)의 최대 값을 구하려 한다. 이를 구하는 프로그램을 작성하시오. * 참고 : subsequence란 원래 순서에서 일부 몇 개를 지운 순서를 의미한다. 예를 들어 abcdefg 라는 순서가 있다면 이 순서의 부분순서는 abcdefg, adeg, efg, ag 등이 있다. 하지만 ba와 같이 순서가 바뀐 것은 부분순서가 아니다. 그리고, abcde, bace 의 최대 공통 부분순서는 ..
[코드업] 4039 - 놀이공원 문제 설명 어린이 놀이동산에 돌-블록이 타일처럼 배치되어 있는 마당이 있다. 이 마당은 아래 그림처럼 n×m 크기의 격자로 표시된다. 격자의 칸에 있는 값은 돌-블록의 높이이다. 이 마당의 입구는 (1,1) 위치이고, 출구는 (n,m) 위치이다. 이 마당에서 즐길 수 있는 놀이 중에는 입구에서 출구까지 길을 찾는 게임이 있다. 게임 참가자는 각 블록에서 동서남북으로 인접한 블록으로 점프하여 건너갈 수 있는데, 높이 차이가 1보다 큰 경우에는 건너갈 수 없다. 또한 출구를 제외하고는 마당 밖으로 나갈 수 없다. 위 예에서 출구인 (4,4) 블록까지 이동하기 위해서는 (1,1), (2,1), (3,1), (3,2), (2,2), (2,3), (3,3), (4,3), (4,4) 블록을 순서대로 지나가면 된다...
[코드업] 2652 - 극장 좌석 배치 2 문제 설명극장에 'n'개의 빈 좌석이 있다. 'k'명의 관객들이 영화를 보기 위해서 왔다. 이 관객들이 'n'개의 좌석에 앉을 수 있는 서로 다른 방법의 수를 구하는 프로그램을 작성하시오. (단, 'k'명의 사람을 서로 구분되지 않으며, 한 명이 좌석에 앉으면 그 양 옆자리는 비어 있도록 배치해야 한다.)입력첫 번재 줄에 n과 k가 공백으로 구분되어 입력된다. [입력값의 정의역] 1≤k≤n≤30출력구한 답을 첫 번째 줄에 출력한다.더보기입력 예시4 2출력 예시3#include #include #include using namespace std; long long factorial(int n){ if(n > n >> k; int blank = n - k; // 빈자리수 cout
[백준] 1865 - 웜홀 문제 때는 2020년, 백준이는 월드나라의 한 국민이다. 월드나라에는 N개의 지점이 있고 N개의 지점 사이에는 M개의 도로와 W개의 웜홀이 있다. (단 도로는 방향이 없으며 웜홀은 방향이 있다.) 웜홀은 시작 위치에서 도착 위치로 가는 하나의 경로인데, 특이하게도 도착을 하게 되면 시작을 하였을 때보다 시간이 뒤로 가게 된다. 웜홀 내에서는 시계가 거꾸로 간다고 생각하여도 좋다. 시간 여행을 매우 좋아하는 백준이는 한 가지 궁금증에 빠졌다. 한 지점에서 출발을 하여서 시간여행을 하기 시작하여 다시 출발을 하였던 위치로 돌아왔을 때, 출발을 하였을 때보다 시간이 되돌아가 있는 경우가 있는지 없는지 궁금해졌다. 여러분은 백준이를 도와 이런 일이 가능한지 불가능한지 구하는 프로그램을 작성하여라. 입력 첫 번째..
[길벗 개발자 리뷰] "Git 교과서" 리뷰 이번에 길벗 개발자 리뷰에 참가하게 되어 너무나도 영광이고, 이번 졸업 프로젝트에서 git을 중심적으로 활용하기 위하여 이 책을 신청하고 너무나도 고맙게도 이 책을 리뷰할 수 있는 기회가 오게 되어 안심이 되면서 길벗 출판사에게 감사의 인사를 먼저 올리게 된다. Git 교과서가 다루고 있는 내용의 초반부는 Git으로 버전관리를 하는 이유, 버전 관리의 원리등을 천천히 설명해가면서 중반부에서 부터는 실제로 실습하는 시간을 가지면서 git쓰는 방법을 체화하는 방식으로 따라가게 되어있다. 책의 후반부에는 git의 대한 상세한 내용을 알 수 있다. 물론 고급 지식으로 이해하는데 좀 어려움이 있지만 더 자세하게 알고 싶다면 후반부를 읽어보는 것을 추천한다. 초반부에는 버전관리의 필요성, 버전관리가 어떻게 이루어져..
[백준] 12851 - 숨바꼭질 2 문제 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 걷는다면 1초 후에 X-1 또는 X+1로 이동하게 된다. 순간이동을 하는 경우에는 1초 후에 2*X의 위치로 이동하게 된다. 수빈이와 동생의 위치가 주어졌을 때, 수빈이가 동생을 찾을 수 있는 가장 빠른 시간이 몇 초 후인지 그리고, 가장 빠른 시간으로 찾는 방법이 몇 가지 인지 구하는 프로그램을 작성하시오. 입력 첫 번째 줄에 수빈이가 있는 위치 N과 동생이 있는 위치 K가 주어진다. N과 K는 정수이다. 출력 첫째 줄에 수빈이가 동생을 찾는 가장 빠른 시간을 출력한다. 둘..