전체 글
-
백준 2805번: 나무 자르기이분 탐색(Binary Search) 2018. 7. 6. 11:25
https://www.acmicpc.net/problem/2805 1. 문제상근이는 나무 M미터가 필요하다. 근처에 나무를 구입할 곳이 모두 망해버렸기 때문에, 정부에 벌목 허가를 요청했다. 정부는 상근이네 집 근처의 나무 한 줄에 대한 벌목 허가를 내주었고, 상근이는 새로 구입한 목재절단기을 이용해서 나무를 구할것이다. 목재절단기는 다음과 같이 동작한다. 먼저, 상근이는 절단기에 높이 H를 지정해야 한다. 높이를 지정하면 톱날이 땅으로부터 H미터 위로 올라간다. 그 다음, 한 줄에 연속해있는 나무를 모두 절단해버린다. 따라서, 높이가 H보다 큰 나무는 H 위의 부분이 잘릴 것이고, 낮은 나무는 잘리지 않을 것이다. 예를 들어, 한 줄에 연속해있는 나무의 높이가 20, 15, 10, 17이라고 하자. 상..
-
백준 10026번: 적록색약깊이우선탐색(DFS) 2018. 7. 5. 20:01
https://www.acmicpc.net/problem/10026 1. 문제 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록), B(파랑) 중 하나를 색칠한 그림이 있다. 그림은 몇 개의 구역으로 나뉘어져 있는데, 구역은 같은 색으로 이루어져 있다. 또, 같은 색상이 상하좌우로 인접해 있는 경우에 두 글자는 같은 구역에 속한다. (색상의 차이를 거의 느끼지 못하는 경우도 같은 색상이라 한다) 키워드 - DFS 해당 영역에서 구할 수 있는 영역은 4 구역이다. R,G,B 기준 일반인이 구별하는 색상 이다. 적록색약인 사람은 G 를 못보기 때문에 G 영역을 ..
-
백준 12778번: CTP공국으로 이민 가자구현(Implementation) 2018. 7. 5. 18:18
https://www.acmicpc.net/problem/12778 1. 문제신생국가 CTP공국은 자신들만의 글자가 없다. CTP공국의 왕 준형이는 전 세계 표준 언어인 알파벳을 사용하기로 했다. 하지만 숫자에 미친 사람들이 모인 CTP공국 주민들은 알파벳을 사용할 때 평범한 알파벳이 아니라 쓰려고 하는 알파벳이 앞에서부터 몇 번째 알파벳인지를 의미하는 숫자로 나타낸다. 예를 들어 ‘A’는 ‘1’로, ‘Z’는 ‘26’로 나타낸다. CTP공국은 현재 부흥 중이라 새로 국민이 되고자 하는 사람이 많다. 하지만 아무나 CTP공국의 국민이 될 수는 없는 법. CTP공국의 이민국장 인덕이는 이민 신청자들이 CTP 공국의 글자체계를 잘 알고 있는지 확인하는 시험문제를 내기로 했다. 시험문제는 두 가지 종류로 구분된..
-
백준 3076번: 상근이의 체스판출력(Print) 2018. 7. 5. 17:55
1. 문제출력 문제 2. 알고리즘키워드 - 구현, 출력 3. 코드 12345678910111213141516171819202122232425262728293031323334353637383940414243444546#include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define MAX_SIZE 100#define INF 0x7fffffff#define CENDL "\n"#define ll long long /** @memory - 1984 kb* @time - 0 ms*/ int main() { cin.tie(0); std::..
-
백준 3040번: 백설 공주와 일곱 난쟁이구현(Implementation) 2018. 7. 5. 17:41
https://www.acmicpc.net/problem/3040 1. 문제매일 매일 일곱 난쟁이는 광산으로 일을 하러 간다. 난쟁이가 일을 하는 동안 백설공주는 그들을 위해 저녁 식사를 준비한다. 백설공주는 의자 일곱개, 접시 일곱개, 나이프 일곱개를 준비한다. 어느날 광산에서 아홉 난쟁이가 돌아왔다. (왜 그리고 어떻게 아홉 난쟁이가 돌아왔는지는 아무도 모른다) 아홉 난쟁이는 각각 자신이 백설공주의 일곱 난쟁이라고 우기고 있다. 백설공주는 이런 일이 생길 것을 대비해서, 난쟁이가 쓰고 다니는 모자에 100보다 작은 양의 정수를 적어 놓았다. 사실 백설 공주는 공주가 되기 전에 매우 유명한 수학자였다. 따라서, 일곱 난쟁이의 모자에 써 있는 숫자의 합이 100이 되도록 적어 놓았다. 아홉 난쟁이의 모자..
-
백준 15729번: 방탈출구현(Implementation) 2018. 7. 5. 15:06
https://www.acmicpc.net/problem/15729 1. 문제방탈출 게임을 하던 혜민이는 마지막 문제에 봉착했다. 단서는 다음과 같다. 앞에는 일렬로 놓여진 N개의 버튼이 모두 불이 꺼진 상태로 있다.0 또는 1로 구성되어 있는 N자리 수가 적힌 쪽지가 있다.0은 불이 꺼진 버튼, 1은 불이 켜진 버튼을 뜻한다.불이 켜져 있는 버튼을 누르면 불이 꺼지고, 불이 꺼져 있는 버튼을 누르면 불이 켜진다.버튼을 누르면 그 버튼 뿐만이 아닌 오른쪽 두 개의 버튼도 같이 눌린다. 혜민이는 현재 모두 불이 꺼진 상태에서 버튼을 최소로 눌러서 쪽지와 똑같은 상태로 만들어야 한다는 것을 알아냈다! 혜민이를 도와줘서 방탈출 게임에 성공하자. 2. 알고리즘키워드 - 구현 3. 코드 12345678910111..
-
Interview Preparation KitArraysArrays: Left Rotation해커랭크(HackerRank) 2018. 7. 4. 17:03
https://www.hackerrank.com/challenges/ctci-array-left-rotation/problem?h_l=playlist&slugs%5B%5D=interview&slugs%5B%5D=interview-preparation-kit&slugs%5B%5D=arrays 1. 문제배열의 요소 회전 하는 문제 2. 알고리즘키워드 - 배열 3. 코드 12345678910111213// Complete the rotLeft function below.vector rotLeft(vector a, int d) { const int size = a.size(); vector brr(size); for(int i=0; i
-
프로그래머스 Level 3 > 가장 긴 펠린드롬프로그래머스(Programmers) 2018. 7. 3. 20:40
https://programmers.co.kr/learn/courses/30/lessons/12904 1. 문제앞뒤를 뒤집어도 똑같은 문자열을 팰린드롬(palindrome)이라고 합니다.문자열 s가 주어질 때, s의 부분문자열(Substring)중 가장 긴 팰린드롬의 길이를 return 하는 solution 함수를 완성해 주세요. 예를들면, 문자열 s가 abcdcba이면 7을 return하고 abacde이면 3을 return합니다. 제한사항문자열 s의 길이 : 2500 이하의 자연수문자열 s는 알파벳 소문자로만 구성 2. 알고리즘키워드 - 문자열, 성준대리님은 풀었어요 3. 코드 123456789101112131415161718192021222324252627#include #include #includ..