본문 바로가기

728x90
반응형

알고리즘

(25)
[자료구조] 백준 10828번 스택 Python 풀이 문제 요약 정수를 저장하는 스택을 구현한 후, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하라 push X: 정수 X를 스택에 넣는 연산 pop: 스택에서 가장 위에 있는 정수를 빼고, 그 수를 출력. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력. size: 스택에 들어있는 정수의 개수 출력 empty: 스택이 비어있으면 1, 아니면 0 출력 top: 스택의 가장 위에 있는 정수 출력. 만약 스택에 들어있는 정수가 없는 경우에는 -1 출력. 백준 10828번 문제 바로가기 입력 첫 번째 줄에 명령의 수 N (1
[구현] 백준 1100번 하얀 칸 Python 풀이 문제 요약 8*8 크기의 체스판은 가장 왼쪽 위칸(0,0)이 하얀색으로 시작하여 검정 칸과 하얀 칸이 번갈아 나온다. 하얀 칸 위에 있는 말이 몇 개인지 출력하는 프로그램을 작성하라. 백준 1100번 문제 바로가기 입력 첫 번째 줄부터 8개의 줄에 체스판의 상태 입력 '.'은 빈 칸, 'F'는 말이 있는 칸 출력 첫째 줄에 문제의 정답 출력 입출력 예시 입력 출력 .F.F...F F...F.F. ...F.F.F F.F...F. .F...F.. F...F.F. .F.F.F.F ..FF..F. 1 코드 정답 예시 1 S = [] count = 0 for _ in range(8): S.append(input()) for i in range(8): for j in range(8): if i % 2 == 1 an..
[그리디] 백준 1439번 뒤집기 Python 풀이 문제 요약 0과 1로만 이루어져 있는 문자열 S의 모든 숫자를 같도록 만들어야 한다. 연속된 하나 이상의 숫자를 잡고 뒤집는 것으로 숫자를 바꾸며, 수를 뒤집는 행동을 최소한으로 하는 횟수를 출력하라. ※ 뒤집는 것은 1을 0으로, 0을 1로 바꾸는 것을 의미 백준 1439번 문제 바로가기 입력 첫 번째 줄에 문자열 S 입력 S의 길이 < 100만 출력 첫째 줄에 뒤집기 최소 횟수 출력 입출력 예시 입력 출력 0001100 1 코드 정답 예시 1 S = input() cntZero = cntOne = 0 numOne = S.split("0") numZero = S.split("1") for i in numOne: if i != "": cntOne += 1 for i in numZero: if i != "..
[구현] 백준 1009번 분산처리 Python 풀이 문제 요약 1부터 10까지 번호를 부여한 컴퓨터가 특정 패턴에 따라 데이터를 처리한다. 1번 데이터는 1번 컴퓨터, 2번 데이터는 2번 컴퓨터, 3번 데이터는 3번 컴퓨터, ... , 10번 데이터는 10번 컴퓨터, 11번 데이터는 1번 컴퓨터, 12번 데이터는 2번 컴퓨터, ... 총 데이터의 개수는 항상 a의 b제곱 형태로 주어진다. 마지막 데이터가 처리될 컴퓨터의 번호를 찾는 프로그램을 작성하라. 백준 1009번 문제 바로가기 입력 첫 번째 줄에 테스트 케이스 개수 T 입력 다음 줄부터 각 테스트 케이스에 대한 정수 a와 b 입력 (1
[그리디] 백준 2847번 게임을 만든 동준이 Python 풀이 문제 요약 게임은 총 N개의 레벨이 있고, 각 레벨을 클리어할 때마다 점수가 주어진다. 쉬운 레벨부터 어려운 레벨 순서로 점수가 주어지는데, 어려워질수록 점수는 증가해야 한다. 쉬운 레벨이 어려운 레벨보다 점수가 높을 경우, 해당 레벨의 점수를 감소시킨다. 총 몇 번을 감소시켜 점수가 증가하도록 만들 수 있는지 구하는 프로그램을 작성하라. ※ 점수는 항상 양수여야 하고, 1을 감소시키는 것이 1번으로 친다. 항상 답이 존재하는 경우만 주어지고, 정답이 여러 가지인 경우 최솟값을 구하라. 백준 2847번 문제 바로가기 입력 첫째 줄에 레벨의 수 N (1
[정렬] 백준 1026번 보물 Python 풀이 문제 요약 길이가 N인 정수 배열A와 B가 있다. S = A[0]*B[0] + ... + A[N-1]*B[N-1] S값이 최소가 되도록 A의 수만 재배열하고, 구한 S값을 출력한다. 입력 첫째 줄에 N이 입력 둘째 줄에 A에 있는 N개의 수가 순서대로 입력 셋째 줄에 B에 있는 수가 순서대로 입력 N은 50보다 작거나 같은 자연수 A, B 각 원소는 100보다 작거나 같은 음이 아닌 정수 출력 첫째 줄에 S의 최솟값 출력 입출력 예시 입력 출력 5 1 1 1 6 0 2 7 8 3 1 18 작성코드 N = int(input()) A = B = [] result = 0 A = [int(x) for x in input().split()] B = [int(x) for x in input().split()] A...
[그리디] 백준 1541번 잃어버린 괄호 문제 요약 양수와 +, -, 괄호로 만들어진 식에서 괄호를 모두 지운다. 해당 식에서 괄호를 적절히 쳐서 최소로 만드는 프로그램을 작성하라. 백준 1541번 문제 바로가기 입력 첫 번째 줄에 식이 주어짐. 식은 '0'~'9', '+', '-' 만으로 이루어져 있고, 처음과 마지막 문자는 숫자 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 많이 연속되는 숫자는 없음. 숫자는 0부터 시작할 수 있고, 식의 길이는 50보다 작거나 같음. 출력 첫째 줄에 정답 출력 입출력 예시 입력 출력 55-50+40 -35 코드 inputData = input() number = result = flag = 0 array = [] # 입력받은 식에서 숫자와 문자를 분리하여 새로운 list(변수명 array)에 ..
[그리디] 백준 2457번 공주님의 정원 Python 풀이 문제 요약 총 N개의 꽃이 있다. 모든 꽃은 같은 해에 피고 같은 해에 진다. 각 꽃은 피는 날과 지는 날이 정해져 있어 피는 기간이 아닐 경우, 꽃을 볼 수 없다. 이러한 꽃들 중, 다음 조건을 만족하는 꽃을 선택한다. 3월 1일부터 11월 30일까지 매일 꽃이 한 가지 이상 피어 있음 꽃은 최소 개수 백준 2457번 문제 바로가기 입력 첫 번째 줄에는 선택한 꽃들의 최소 개수 출력. 두 조건을 만족하는 꽃을 선택할 수 없다면 0 출력. 출력 여러분은 T초를 위한 최소버튼 조작의 A B C 횟수를 첫 줄에 차례대로 출력해야 한다. 각각의 횟수 사이에는 빈 칸을 둔다. 해당 버튼을 누르지 않는 경우에는 숫자 0을 출력해야한다. 만일 제시된 3개의 버튼으로 T초를 맞출 수 없으면 음수 -1을 첫 줄에 출력..

728x90
반응형