전체 글
[python] max, min 함수의 매개변수 key, default 활용
max(iterable, *[key, default]) min(iterable, *[key, default]) a = [5, 5, 4, 3, 2, 1, 0, 0] b = [(data, idx) for idx, data in enumerate(a)] # a에 index 정보를 추가한 형태 print(b) # >> [(5, 0), (5, 1), (4, 2), (3, 3), (2, 4), (1, 5), (0, 6), (0, 7)] 위 리스트를 가지고 예제를 확인할 것임. * 리스트 b는 리스트 a의 index 정보를 배열로 추가한 것임. (5, 0)과 (5, 1), (0, 6)과 (0, 7)을 max 또는 min 함수를 사용할 때 어떻게 반환할지 보기 위한 예제. ● 기본 예제 print(max(a)) # >..
[Python] 백준 '스택 수열' 1874번 | 스텍, 그리디 자료구조 문제
다른 문제 모음집 문제 스택 (stack)은 기본적인 자료구조 중 하나로, 컴퓨터 프로그램을 작성할 때 자주 이용되는 개념이다. 스택은 자료를 넣는 (push) 입구와 자료를 뽑는 (pop) 입구가 같아 제일 나중에 들어간 자료가 제일 먼저 나오는 (LIFO, Last in First out) 특성을 가지고 있다. 1부터 n까지의 수를 스택에 넣었다가 뽑아 늘어놓음으로써, 하나의 수열을 만들 수 있다. 이때, 스택에 push하는 순서는 반드시 오름차순을 지키도록 한다고 하자. 임의의 수열이 주어졌을 때 스택을 이용해 그 수열을 만들 수 있는지 없는지, 있다면 어떤 순서로 push와 pop 연산을 수행해야 하는지를 알아낼 수 있다. 이를 계산하는 프로그램을 작성하라. 입력 첫 줄에 n (1 ≤ n ≤ 10..
[Python] 백준 '블랙잭' 2798번 | 배열, 완전탐색 자료구조 문제
다른 문제 모음집 문제 카지노에서 제일 인기 있는 게임 블랙잭의 규칙은 상당히 쉽다. 카드의 합이 21을 넘지 않는 한도 내에서, 카드의 합을 최대한 크게 만드는 게임이다. 블랙잭은 카지노마다 다양한 규정이 있다. 한국 최고의 블랙잭 고수 김정인은 새로운 블랙잭 규칙을 만들어 상근, 창영이와 게임하려고 한다. 김정인 버전의 블랙잭에서 각 카드에는 양의 정수가 쓰여 있다. 그 다음, 딜러는 N장의 카드를 모두 숫자가 보이도록 바닥에 놓는다. 그런 후에 딜러는 숫자 M을 크게 외친다. 이제 플레이어는 제한된 시간 안에 N장의 카드 중에서 3장의 카드를 골라야 한다. 블랙잭 변형 게임이기 때문에, 플레이어가 고른 카드의 합은 M을 넘지 않으면서 M과 최대한 가깝게 만들어야 한다. N장의 카드에 써져 있는 숫자..
파이참(PyCharm)으로 알고리즘 연습 쉽게 하기 | 입출력 파일 설정 (input.in, output.out)
서론 알고리즘 연습을 할 때, 입력과 출력, 내가 짠 코드를 한번에 볼 수 있어서, 피드백을 하기 쉽습니다. 백준이나 leetcode와 같은 알고리즘 연습 사이트를 보면, 테스트를 진행할 때 여러 입력을 넣고 출력을 확인해봐야 하는데 위와 같은 환경이, 이를 편리하게 해줍니다. (input.in 창에 '예제 입력'을 복사-붙여넣기 하고 main.py를 run하면 output.out에 출력됨) 방법 1. 먼저 input.in 파일과 output.out 파일, main.py 을 만듭니다. (확장자만 지켜주시면 됩니다) 2. 메뉴바 (RUN > Edit Configurations) 혹은 오른쪽 위에 위치한 Edit Configurations 를 클릭 아래와 같은 창이 뜹니다. 3. Configuration >..
[Python] 백준 '음계' 2920번 | 배열, 구현 자료구조 문제
다른 문제 모음집 문제 다장조는 c d e f g a b C, 총 8개 음으로 이루어져있다. 이 문제에서 8개 음은 다음과 같이 숫자로 바꾸어 표현한다. c는 1로, d는 2로, ..., C를 8로 바꾼다. 1부터 8까지 차례대로 연주한다면 ascending, 8부터 1까지 차례대로 연주한다면 descending, 둘 다 아니라면 mixed 이다. 연주한 순서가 주어졌을 때, 이것이 ascending인지, descending인지, 아니면 mixed인지 판별하는 프로그램을 작성하시오. 입력 첫째 줄에 8개 숫자가 주어진다. 이 숫자는 문제 설명에서 설명한 음이며, 1부터 8까지 숫자가 한 번씩 등장한다. 출력 첫째 줄에 ascending, descending, mixed 중 하나를 출력한다. 풀이 N = ..