전체 글(303)
-
2309 [완전탐색(조합)]
문제 왕비를 피해 일곱 난쟁이들과 함께 평화롭게 생활하고 있던 백설공주에게 위기가 찾아왔다. 일과를 마치고 돌아온 난쟁이가 일곱 명이 아닌 아홉 명이었던 것이다. 아홉 명의 난쟁이는 모두 자신이 "백설 공주와 일곱 난쟁이"의 주인공이라고 주장했다. 뛰어난 수학적 직관력을 가지고 있던 백설공주는, 다행스럽게도 일곱 난쟁이의 키의 합이 100이 됨을 기억해 냈다. 아홉 난쟁이의 키가 주어졌을 때, 백설공주를 도와 일곱 난쟁이를 찾는 프로그램을 작성하시오. 입력 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. 출력 일곱 난쟁이의 키를 오름차순으로 출력한다. 일곱 난쟁이를 찾을..
2022.05.06 -
1302 [map & dictionary]
문제 김형택은 탑문고의 직원이다. 김형택은 계산대에서 계산을 하는 직원이다. 김형택은 그날 근무가 끝난 후에, 오늘 판매한 책의 제목을 보면서 가장 많이 팔린 책의 제목을 칠판에 써놓는 일도 같이 하고 있다. 오늘 하루 동안 팔린 책의 제목이 입력으로 들어왔을 때, 가장 많이 팔린 책의 제목을 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 오늘 하루 동안 팔린 책의 개수 N이 주어진다. 이 값은 1,000보다 작거나 같은 자연수이다. 둘째부터 N개의 줄에 책의 제목이 입력으로 들어온다. 책의 제목의 길이는 50보다 작거나 같고, 알파벳 소문자로만 이루어져 있다. 출력 첫째 줄에 가장 많이 팔린 책의 제목을 출력한다. 만약 가장 많이 팔린 책이 여러 개일 경우에는 사전 순으로 가장 앞서는 제목을 출력한다..
2022.05.05 -
2164 [큐]
문제 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 한 장 남을 때까지 반복하게 된다. 우선, 제일 위에 있는 카드를 바닥에 버린다. 그 다음, 제일 위에 있는 카드를 제일 아래에 있는 카드 밑으로 옮긴다. 예를 들어 N=4인 경우를 생각해 보자. 카드는 제일 위에서부터 1234 의 순서로 놓여있다. 1을 버리면 234가 남는다. 여기서 2를 제일 아래로 옮기면 342가 된다. 3을 버리면 42가 되고, 4를 밑으로 옮기면 24가 된다. 마지막으로 2를 버리고 나면, 남는 카드는 4가 된다. N이 주어졌을 때, 제일 마지막에 남게 되는 카드를 구하는 프로..
2022.05.04 -
9012 [스택]
문제 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 부른다. 한 쌍의 괄호 기호로 된 “( )” 문자열은 기본 VPS 이라고 부른다. 만일 x 가 VPS 라면 이것을 하나의 괄호에 넣은 새로운 문자열 “(x)”도 VPS 가 된다. 그리고 두 VPS x 와 y를 접합(concatenation)시킨 새로운 문자열 xy도 VPS 가 된다. 예를 들어 “(())()”와 “((()))” 는 VPS 이지만 “(()(”, “(())()))” , 그리고 “(()” 는 모두 VPS 가 아닌 문자열이다. 여러분은 입력으로 주어진 괄호 문자열..
2022.05.04 -
map & set
컴공선배의 알고리즘캠프의 강의 내용을 공부하여 정리해 놓은 목적으로 작성하였습니다 map 과 set은 공통점이 많기 때문에 알고리즘 문제를 풀때 map문제를 set문제를 적용해서 풀 수 도 있고 반대도 가능하다. #map map의 특징으로는 key값과 value 값이 있다. key값은 중복을 허용하지 않고 value값은 중복을 허용한다. 삽입, 삭제시 시간 복잡도는 O(1) 이다. # set은 흔히 집합이라고 부른다. set 역시 map처럼 중복을 허용하지 않고 삽입, 삭제시 시간복잡도도 O(1) 이다. pop()을 사용하면 어떤값이 빠지는지 알 수가 없고 랜덤인 값이 빠진다 remove(n)를 사용하는 n에 자신이 원하는 특정값을 넣어 뺄 수 있다 clear()을 사용하면 모든 요소의값을 뺀다
2022.05.04 -
itertools [완전탐색]
완전탐색을 공부하는 도중 itertools 라이브러리라는 것을 알게 되었고 여기서에서 조합, 순열과 관련된 문제에 유용하게 쓰일 수 있는 4가지 함수를 발견하였다. combibations() combinations_with_replacement() product() permutation() 조합형 이터레이터 이터레이터인자결과 product() p, q, … [repeat=1] 데카르트 곱(cartesian product), 중첩된 for 루프와 동등합니다 permutations() p[, r] r-길이 튜플들, 모든 가능한 순서, 반복되는 요소 없음 combinations() p, r r-길이 튜플들, 정렬된 순서, 반복되는 요소 없음 combinations_with_replacement() p, r r..
2022.05.03