백준시의 시장 최백준은 지난 몇 년간 게리맨더링을 통해서 자신의 당에게 유리하게 선거구를 획정했다. 견제할 권력이 없어진 최백준은 권력을 매우 부당하게 행사했고, 심지어는 시의 이름도 백준시로 변경했다. 이번 선거에서는 최대한 공평하게 선거구를 획정하려고 한다.백준시는
Two Dots는 Playdots, Inc.에서 만든 게임이다. 게임의 기초 단계는 크기가 N×M인 게임판 위에서 진행된다.각각의 칸은 색이 칠해진 공이 하나씩 있다. 이 게임의 핵심은 같은 색으로 이루어진 사이클을 찾는 것이다.다음은 위의 게임판에서 만들 수 있는 사
나이트 투어는 체스판에서 나이트가 모든 칸을 정확히 한 번씩 방문하며, 마지막으로 방문하는 칸에서 시작점으로 돌아올 수 있는 경로이다. 영식이는 6×6 체스판 위에서 또 다른 나이트 투어의 경로를 찾으려고 한다. 체스판의 한 칸은 A, B, C, D, E, F 중에서
어떤 문제의 난이도는 그 문제를 푼 사람들이 제출한 난이도 의견을 바탕으로 결정한다. 난이도 의견은 그 사용자가 생각한 난이도를 의미하는 정수 하나로 주어진다. solved.ac가 사용자들의 의견을 바탕으로 난이도를 결정하는 방식은 다음과 같다.아직 아무 의견이 없다면
상근이는 생명과학 연구소에서 염색체가 특정한 패턴인지를 확인하는 일을 하고 있다. 염색체는 알파벳 대문자 (A, B, C, ..., Z)로만 이루어진 문자열이다. 상근이는 각 염색체가 다음과 같은 규칙을 만족하는지 검사해야 한다.문자열은 {A, B, C, D, E, F
얼마전에 나는 불면증에 시달렸지... 천장이 뚫어져라 뜬 눈으로 밤을 지새우곤 했었지. 그러던 어느 날 내 친구 광민이에게 나의 불면증에 대해 말했더니 이렇게 말하더군. "양이라도 세봐!" 정말 도움이 안되는 친구라고 생각했었지. 그런데 막상 또 다시 잠을 청해보려
동혁이는 크로스워드 퍼즐을 좋아한다. R×C 크기의 크로스워드 퍼즐을 생각해 보자. 이 퍼즐은 R×C 크기의 표로 이루어지는데, 퍼즐을 다 풀면 금지된 칸을 제외하고는 각 칸에 알파벳이 하나씩 적혀 있게 된다. 아래는 R = 5, C = 5 인 경우 다 푼 퍼즐의 한
요세푸스 문제는 다음과 같다.$1$번 사람 오른쪽에는 $2$번 사람이 앉아 있고, $2$번 사람 오른쪽에는 $3$번 사람이 앉아 있고, 계속하여 같은 방식으로 $N$명의 사람들이 원을 이루며 앉아 있다. $N$번 사람 오른쪽에는 $1$번 사람이 앉아 있다. 이제 $K$
영식이는 숫자를 셀 때, 왼손을 이용한다. 엄지손가락부터 시작해서 새끼손가락까지 차례대로 하나씩 센다. 그다음에 새끼손가락까지 센 다음에는 반대로 엄지손가락으로 다시 역방향으로 센다. 영식이는 자기가 원하는 숫자가 나올 때 까지 계속해서 이 방법으로 센다. 영식이는 절
8번의 움직임이 있다고 이미 문제에서 힌트를 준다.\-1, +1, -A, +A, -B, +B, x A, x B이렇게 8번의 움직임을 bfs를 통해 해결하면 끝
간단하게 생각하면바구니의 수 만큼 등차수열을 이루면 된다.따라서 등차수열의 총합공식 = n(n+1)/2 보다 주어지는 공의 수 가 적으면 -1 K \* (K + 1) // 2 > N공의 수의 배수가 바구니의 수와 같다면 K-1ex) 공이 6개 바구니가 3개2/2/2 →
아무생각없이 O(N²)의 완탐으로 풀었다.당연하게도 시간초과 발생그래서 총 움직이는 거리에서 하나를 제외한 가장 부분이 긴 거리를 빼기로 했다.이러면 O(N²) → O(N)으로 줄여 시간초과를 해결할 수 있다.
정우는 소문난 걸그룹 덕후이다. 정우의 친구 준석이도 걸그룹을 좋아하지만 이름을 잘 외우지 못한다는 문제가 있었다. 정우는 친구를 위해 걸그룹 개인과 팀의 이름을 검색하여 외우게 하는 퀴즈 프로그램을 만들고자 한다.첫 번째 줄에는 총 입력 받을 걸그룹의 수 N(0 &l
문자열의 길이 제한이 80이라는 점에서 단순 구현문제이다.입력되는 words의 길이 내에서 탐색하는 부분에서 잠시 애를 먹었다.
간단했다.total 배열을 만드는 과정에서 1을 넣을 것인지, l번째 값을 넣을 것 인지만 잘 생각하면 됬던 문제
처음엔 permutation을 통해 전체 연산자 중 n-1개를 뽑으려 했지만시간초과가 나 실패했다.백트래킹을 통해 총 연산자의 수가 n-1개가 될 때까지 반복하며 진행백트래킹은 어렵다...
전체 창에서 (1,1)을 기준으로(1, 1) → (1, 6) → (6, 1) 이런식으로 탐색을 진행했다.하나의 탐색에선 해당 부분에서 \*의 개수를 세서 몇 번 블라인드 인지 확인해 리턴
정인이는 강남의 유명한 클럽 Top Root의 도어맨이다. 클럽의 사장은 정인이에게 클럽이 꽉찼을 때, 클럽에 있는 남자와 여자의 수는 거의 비슷해야 한다고 말해주었다.사람들은 클럽이 문을 열기 전 부터 줄을 서 있는다. 클럽이 문을 열면, 한 명씩 직접 정인이가 입장
상근이는 근처 피자 가게에서 매일 저녁으로 피자를 배달해 먹는다. 주머니 사정이 얇아진 상근이는 이번 달부터는 "최고의 피자"를 구매하려고 한다. 최고의 피자란, 피자 가게에서 주문할 수 있는 피자 중 1원당 열량이 가장 높은 피자를 말한다. 최고의 피자는 여러 종류가
양치기 꿍은 맨날 늑대가 나타났다고 마을 사람들을 속였지만 이젠 더이상 마을 사람들이 속지 않는다. 화가 난 꿍은 복수심에 불타 아예 늑대들을 양들이 있는 울타리안에 마구 집어넣어 양들을 잡아먹게 했다.하지만 양들은 보통 양들이 아니다. 같은 울타리 영역 안의 양들의
선린월드에는 N개의 섬이 있다. 섬에는 1, 2, ..., N의 번호가 하나씩 붙어 있다. 그 섬들을 N - 1개의 다리가 잇고 있으며, 어떤 두 섬 사이든 다리로 왕복할 수 있다.어제까지는 그랬다."왜 다리가 N - 1개밖에 없냐, 통행하기 불편하다"며 선린월드에 불
위대한 해커 창영이는 모든 암호를 깨는 방법을 발견했다. 그 방법은 빈도를 조사하는 것이다.창영이는 말할 수 없는 방법을 이용해서 현우가 강산이에게 보내는 메시지를 획득했다. 이 메시지는 숫자 N개로 이루어진 수열이고, 숫자는 모두 C보다 작거나 같다. 창영이는 이 숫
메모리초과 코드가능한 모든 경우의 수를 permutations를 통해 만든 후,만들어진 수들 중 주어진 값과 가장 가까운 큰 수를 찾는 로직으로 작성했다.시간초과 코드딕셔너리를 통해 각 값이 얼마나 등장하는 지를 세어 확인 후 비교해나가는 로직을 구성했다.문자열 그리디
최대 힙을 통해 우선순위 큐를 구현해 해결가장 큰 값, 두번째 값을 힙에서 추출해1, 2, 5의 경우, 5, 2두 값의 차이 만큼 cnt에 더해주고, 해당 차이 값을 다시 힙에 push원소가 하나 남을 때 까지 반복원소가 하나 남았다면 해당 원소 값 만큼 cnt에 +
if문의 향연...더 좋은 풀이로 최적화 시킬 수 있을 것 같다.각 줄마다 stack을 만들어 해당 부분에서의 프랫을 각 stack의 마지막 인덱스와 비교해 res를 올려가는 로직으로 구성
처음 접근을 잘못했다.스택의 크기를 정해서 구현했는데, 방법 접근법이 틀림4개의 스택을 정하고 수를 오름차순으로 스택에 넣고 못 넣으면 만들 수 없다.
시간초과문제에서 주어진 암벽의 위치를 graph에 넣고 for문을 통해 해당 점을 탐색 가능 한지안 한지를 판단해서 가능하면 탐색n <= 50,000 이기에 여기서 시간초과가 발생한다고 생각해결암벽의 위치를 통해 판단하는게 아니라 가능한 부분내에 잡을 수 있는 암
값이 변하는 위치의 인덱스를 찾아 deque()에 넣고증가하는 i와 deque()의 \[0]과 비교하면서 답 찾기
메모리 초과발생한 수를 numbers를 통해 배열을 만드는 부분에서m의 범위가 크기 때문에 메모리 초과가 발생한다.해결numbers배열이 아닌 set()을 통해 해결
영우는 개구리다 개굴개굴개굴영우는 지금 n개의 돌이 일렬로 놓여있는 돌다리에 있다. 그리고 돌다리의 돌에는 숫자가 하나씩 적혀있다. 영우는 이 숫자가 적혀있는 만큼 왼쪽이나 오른쪽으로 점프할 수 있는데, 이때 돌다리 밖으로 나갈 수는 없다.영우는 이 돌다리에서 자기가
스타는 알파벳 블록을 일렬로 조립하여 문자열을 만드는 게임을 만들었다. 각 블록에는 문자 하나가 적혀 있으며 게임에는 각각 다음 기능을 수행하는 세 개의 버튼이 있다.문자열 맨 뒤에 블록 추가문자열 맨 앞에 블록 추가문자열을 구성하는 블록 중 가장 나중에 추가된 블록
상훈이는 $N$개의 선물 상자를 가지고 있다. 선물 상자에는 현재 담겨있는 선물의 개수가 적혀있다.선물을 받을 아이들이 $M$명 있다. 아이들은 각자 $1$에서 $M$까지의 서로 다른 번호를 하나씩 부여받았다.$1$번 아이부터 $M$번 아이까지 한 번에 한 명씩, 현재
N명의 사람들이 있다. 이들은 각자 다른 한 명의 이름이 적힌 쪽지를 받아서, 그 사람에게 몰래 선행을 베푼다. 이때 자기 자신의 이름을 받을 수는 없으며, 선행을 받은 사람은 누가 자신을 도와줬는지도 알 수 없다.그런데 이런 마니또 활동을 하던 중 할 짓이 지지리도
중앙대학교 소프트웨어대학 새내기들을 맞이하게 된 17학번 김영기는 두 학번이라는 차이를 극복하기 위해 새내기들과 친해지려고 노력하고 있다. 그 노력 중 하나는 바로 새내기들과의 술자리에 참여하는 것이다. 그러나 혼자 가기에 민망했던 영기는 동기 보성이를 꼬셔 같이 술자
deque()의 rotate()를 통해 해결할 수 있다.rev_std를 만드는 과정에서 \[::-1]을 해주지 않아 헤맸다.
시간초과그냥 3개의 점을 뽑아서 판단하는 combination로직을 생각했는데 1000개의 점중에서 3개를 뽑는거라 시간초과가 당연하게도 발생했다.실버 2 라기엔 조금 생각하기 어려웠던 문제
S2 치고 굉장히 쉬웠던 문제deque()를 사용할 줄만 안다면 해결할 수 있다.
기존과 달라진 부분을 찾고 해당 부분에서 bfs()를 수행해 graph\[] 값을 바꾸고after\[]와 graph\[]를 비교하면 되는 문제
각 포지션에 대해 defaultdict(list)를 만들어 구성했다.포지션에서 가장 높은 값을 위해 최대 힙으로 구현
시간초과를 고려해야 했던 문제
간단해보였는데 엄청 헤맸다.처음엔 stack을 통해서 해결하고자 했는데 실패했다.구글링을 참고하면서 딕셔너리를 통해 푼다는 내 기조가 틀리지 않은 거 같아서 해결할 수 있었다.
랑이 집사는 고양이들이 좋아한다는 캣닢을 직접 재배하려고 한다.일직선으로 놓여진 $N$개의 화분에 캣닢이 하나씩 심어져 있다.각 화분은 초기에 $K$만큼의 수분을 머금고 있고, 매일 아래와 같은 일이 순서대로 일어난다.랑이 집사가 연속된 $A$개의 화분에 물을 준다.
수빈이는 여행을 좋아한다. 더 이상 지구에서 여행할 곳이 없어진 수빈이는 N차원 우주로 여행을 떠났다. 우주의 각 점은 좌표 N개로 이루어 지며, 각각의 좌표는 1부터 N까지 인덱스가 매겨져 있다.수빈이는 원점(모든 좌표가 0인 곳)에서 여행을 시작하며, 아래와 같은
N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다.N개의 자연수 중에서 M개를 고른 수열백트래킹(dfs) 풀이를 거의 안해봐서 공부 시작이론적 이해를 조금 더 해야할
k를 언제 빼줘야 되나를 고민했었는데, 그냥 arr\[i] 값을 더할 때 같이 빼주면 되었다.백트래킹 도전기... 화이팅
눈송이들이 많은 동네인 숙명여대 앞마당에서 눈사람 만들기 대회를 연다. 앞마당의 길이는 $N$이고 위치 $1$부터 위치 $N$ 까지만 눈이 쌓여있다.위치 $i$에 눈이 $a_i$만큼 쌓여있다. 대회 규칙은 해당 앞마당에서 $M$초 동안 눈덩이를 굴려 눈사람을 만드는 것
S3 치곤 조금 어려웠던 문제현재 줄 서있는 부분을 deque로, 왼쪽 꺾인 부분을 stack으로 구현했다.
지난 번 헛간 청약의 당첨우(牛)가 발표됐다. 청약에 당첨된 소들은 날아갈 듯이 기뻐하다가 진짜로 하늘을 날았다. 하지만 이후로 소들은 날 수 없었다. 그러던 어느 날, 꿀벌에게 쏘이면 잠깐 하늘을 날 수 있다는 사실을 깨달았다. 이 사실이 퍼지자 소들은 다시 자유롭게
총 25명의 여학생들로 이루어진 여학생반은 5×5의 정사각형 격자 형태로 자리가 배치되었고, 얼마 지나지 않아 이다솜과 임도연이라는 두 학생이 두각을 나타내며 다른 학생들을 휘어잡기 시작했다. 곧 모든 여학생이 ‘이다솜파’와 ‘임도연파’의 두 파로 갈라지게 되었으며,
어렵진 않았던 문제, 주어진 대로 진행하되,각 고릴라의 이름에 따라 heapq 딕셔너리를 구성했다.
효빈이의 비밀 박스에는 조약돌이 N개 들어있다. 조약돌의 색상은 1부터 M까지 중의 하나이다.비밀 박스에서 조약돌을 랜덤하게 K개 뽑았을 때, 뽑은 조약돌이 모두 같은 색일 확률을 구하는 프로그램을 작성하시오. 처음에 combinations()를 통해 풀었는데 시간초과
한 단어는 1~10개의 대문자(A-Z)들로 이루어진 문자열이다. 한 문장은 공백으로 구분된 단어들로 이루어졌다.제 1 공개키는 최대 한 번만 사용된 단어들로 되어있다.제 2 공개키는 제 1 공개키의 단어들을 재배치하여 만들어진다.평문(암호화 되지 않은 문장)은 제 1
‘쩰리’는 점프하는 것을 좋아하는 젤리다. 단순히 점프하는 것에 지루함을 느낀 ‘쩰리’는 새로운 점프 게임을 해보고 싶어 한다. 새로운 점프 게임의 조건은 다음과 같다.‘쩰리’는 가로와 세로의 칸 수가 같은 정사각형의 구역 내부에서만 움직일 수 있다. ‘쩰리’가 정사각
고대 미스테리로 전해지는 여우의 울음소리를 밝혀내기 위해 한신이는 고성능 녹음기로 무장하고 숲으로 들어갔다. 하지만 숲에는 동물들이 가득해, 녹음된 음성에는 다른 동물들의 울음소리가 섞여 있다. 그러나 한신이는 철저한 준비를 해 왔기 때문에 다른 동물들이 어떤 울음소리
연세대학교 수강신청 기간이 시작되었다. 많은 친구들은 비어 있는 시간에 어떤 과목을 추가로 신청할 수 있는지를 궁금해 한다.이 친구들이 비어 있는 시간에 추가로 신청할 수 있는 과목의 후보 개수를 구해보자.후보 개수를 세는 것이므로 현재 내 시간표에서 신청할 수 있는
선린에 합격한 대호에게는 큰 고민이 있다. 대호는 중학교 3년 내내 공부만 했기 때문에, 요즘 학생들이 사용하는 ‘야민정음’에 대해서는 문외한이다. 친구들의 대화에 끼고 싶은 대호는 야민정음을 공부하기로 했다.야민정음이란, 비슷한 모양의 글자를 원래 문자 대신에 사용하
모든 중앙대 컴퓨터공학부(소프트웨어학부) 학생들은 미인이다.지무근은 중앙대 컴퓨터공학부 학생이다.그러므로 지무근은 미인이다.위 연역 논증은 대표적인 삼단논법의 예시이다. 삼단논법이란 전제 두 개와 결론 하나로 이루어진 연역 논증이다. 이것을 응용하면, n개의 전제가 있
정수 4를 1, 2, 3의 합으로 나타내는 방법은 총 7가지가 있다. 합을 나타낼 때는 수를 1개 이상 사용해야 한다.1+1+1+11+1+21+2+12+1+12+21+33+1이를 사전순으로 정렬하면 다음과 같이 된다.1+1+1+11+1+21+2+11+32+1+12+23
윌리암슨수액빨이딱따구리 세 식구가 정보섬에 올라왔다!세 윌리암슨수액빨이딱따구리는 정보섬 2층 어딘가에 모여 앉아 쉬고 있었는데, 저 멀리 청국장과 스시와 맥앤치즈가 있는 것을 발견했다! 아빠는 청국장, 엄마는 스시, 아이는 맥앤치즈가 먹고 싶다. 그래서 이 셋은 현위치
방탈출 게임을 하던 혜민이는 마지막 문제에 봉착했다. 단서는 다음과 같다.앞에는 일렬로 놓여진 N개의 버튼이 모두 불이 꺼진 상태로 있다.0 또는 1로 구성되어 있는 N자리 수가 적힌 쪽지가 있다.0은 불이 꺼진 버튼, 1은 불이 켜진 버튼을 뜻한다.불이 켜져 있는 버
Farmer John has been keeping detailed records of his cows as they enter the barn for milking. Each hour, a group of 3 cows enters the barn, and Farmer
민겸이는 로마 숫자를 보고 굉장히 흥미롭다고 생각했다. 그래서 민겸이는 새로운 수 체계인 민겸 수를 창조했다.민겸 숫자는 0 이상의 정수 N에 대해 10^N 또는 5 × 10^N 꼴의 십진수를 대문자 M과 K로 이루어진 문자열로 표기한다. 10^N 꼴의 십진수는 N +
통제 할 수 없는 미친 로봇이 평면위에 있다. 그리고 이 로봇은 N번의 행동을 취할 것이다.각 행동에서 로봇은 4개의 방향 중에 하나를 임의로 선택한다. 그리고 그 방향으로 한 칸 이동한다.로봇이 같은 곳을 한 번보다 많이 이동하지 않을 때, 로봇의 이동 경로가 단순하
민균이는 요즘 준민이를 놀리는 일에 재미가 들렸다. 오늘도 그는 준민이를 놀리기 위해 한가지 재미있는 아이디어를 떠올렸다. 그는 하나의 정수가 쓰여 있는 카드 N장을 준비하여 준민이에게 정해진 순서대로 보여줄 것이다. 준민이는 앞의 카드부터 임의의 개수만큼 골라서 민균