Koala - 10기

문제링크 https://www.acmicpc.net/problem/2346 2346번: 풍선 터뜨리기 1번부터 N번까지 N개의 풍선이 원형으로 놓여 있고. i번 풍선의 오른쪽에는 i+1번 풍선이 있고, 왼쪽에는 i-1번 풍선이 있다. 단, 1번 풍선의 왼쪽에 N번 풍선이 있고, N번 풍선의 오른쪽에 1번 풍선 www.acmicpc.net 코드 from collections import deque n = int(input()) q = deque(enumerate(map(int,input().split()))) while q: idx,num = q.popleft() print(idx+1,end=' ') if num>0: q.rotate(-(num-1)) else: q.rotate(-num) 문제풀이 dequ..
https://www.acmicpc.net/problem/17502 17502번: 클레어와 팰린드롬 입력으로 주어진 문자열을 팰린드롬이 되도록 '?' 문자들을 적절한 알파벳 소문자들로 바꾸어 출력합니다. 방법이 여러 가지인 경우 그 중 하나만 출력합니다. www.acmicpc.net 팰린드롬은 앞에서 읽으나 뒤에서 읽으나 일치해야 한다. 즉, 문자열의 양 끝에서 포인터의 위치를 변화시켜 두 포인터가 가르키는 문자가 전부 동일해야 한다. 1. 앞쪽의 문자가 '?', 뒤쪽은 '?'가 아님 -> 뒤의 문자를 앞쪽에 넣어준다. 2. 뒤쪽의 문자가 '?', 앞쪽은 '?'가 아님 -> 앞의 문자를 뒤에 넣어준다. 3. 둘 다 '?' -> 아무 문자나 넣어주면 된다. 내 경우엔 'a'
1. 문제 https://www.acmicpc.net/problem/1417 1417번: 국회의원 선거 첫째 줄에 후보의 수 N이 주어진다. 둘째 줄부터 차례대로 기호 1번을 찍으려고 하는 사람의 수, 기호 2번을 찍으려고 하는 수, 이렇게 총 N개의 줄에 걸쳐 입력이 들어온다. N은 50보다 작거나 같 www.acmicpc.net 2. 설명 그리디 알고리즘을 사용하면 다솜이를 제외한 모든 국회의원들 중 표가 가장 많은 사람의 표를 뺏어 오는 것이 가장 유리하다 !! 3. 코드 n = int(input()) dasom = int(input()) vote = [] count = 0 for _ in range(n-1) : vote.append(int(input())) vote.sort(reverse=True..
문제 https://www.acmicpc.net/problem/5430 5430번: AC 각 테스트 케이스에 대해서, 입력으로 주어진 정수 배열에 함수를 수행한 결과를 출력한다. 만약, 에러가 발생한 경우에는 error를 출력한다. www.acmicpc.net Algorithm "R"의 개수에 따라 "D"를 입력받았을 떄 배열에서 pop할 위치가 달라진다. "R"을 홀수 번 입력받으면 배열의 마지막 위치에서, 짝수 번(0번 포함) 입력받으면 배열의 첫번째 위치에서 pop시킨다. 그리고 최종적으로 "R"을 홀수 번 입력받았을 경우에는 배열을 reverse 명령어로 순서를 반대로 해서 출력하고 짝수 번(0번 포함) 입력받았을 경우에는 그대로 출력한다. 만약 "D" 입력을 너무 많이 받아 배열의 길이가 0일 ..
총 후보가 몇 명인지와 각 후보의 득표수를 알고 있을때 이를 이용해서 구해야 하니 하나의 리스트를 이용해 정보를 보관하자. -> 몇 명이든지 정보를 기록하기에는 이 방법밖에 생각이 안난다. 이 리스트에서 나 -> 0번 원소가 최댓값이여야 한다. 따라서 다른 원소가 최댓값이라면 하나를 빼서 나에게 하나를 더 해주고 매수한 표를 하나씩 카운팅하는 법을 사용하자 이 방법을 사용하면 처음부터 내가 최대이거나 내가 최대가 되면 그만 해야하니까 if문과 while문을 야무지게 써주자. 하나 조심해야 할 부분은 내가 최댓값이여도 같은 표를 가진 사람이 있으면 한 표가 더 필요한거니 이 부분을 고려해야 한다. 이 부분들을 고려한 내 코드가 밑에 있다. import sys def main(): N = int(sys.st..
Problem Solution 1. 단어를 str 변수에 입력 받는다. 2. for문을 활용하여 strReverse라는 변수에 str의 글자 하나 하나를 거꾸로 저장한다. 3. str과 strReverse가 같으면 "true"를 출력하고 같지 않으면 "false"를 출력한다. Answer #include #include using namespace std; int main() { string str; cin >> str; string strReverse; for(int i = str.length()-1; i >= 0; i--) { strReverse += str[i]; } if(str==strReverse) { cout
https://www.acmicpc.net/problem/5430 5430번: AC 각 테스트 케이스에 대해서, 입력으로 주어진 정수 배열에 함수를 수행한 결과를 출력한다. 만약, 에러가 발생한 경우에는 error를 출력한다. www.acmicpc.net package Koala_study.week_5; import java.util.Deque; import java.util.LinkedList; import java.util.Scanner; import java.util.StringTokenizer; public class g_5430 { public static void main(String[] args) { Scanner in = new Scanner(System.in); StringTokenize..
문제 https://www.acmicpc.net/problem/11728 11728번: 배열 합치기 첫째 줄에 배열 A의 크기 N, 배열 B의 크기 M이 주어진다. (1 ≤ N, M ≤ 1,000,000) 둘째 줄에는 배열 A의 내용이, 셋째 줄에는 배열 B의 내용이 주어진다. 배열에 들어있는 수는 절댓값이 109보다 작거 www.acmicpc.net Algorithm join 을 이용해 리스트 요소 연결 join은 리스트의 요소가 모두 문자열일 때만 사용 가능 위 리스트 모두 int형이므로 map을 이용해 형변환을 해준후 사용 map(변환할 자료형, 리스트명) 이 변환한걸 다시 리스트로 바꿔주려면 list(map(변환할 자료형, 리스트명) 정렬해주고 연결된 리스트 출력 Code N,M=map(int,i..
https://www.acmicpc.net/problem/15903 문제 분석 난이도 실버 1 분류 자료구조, 우선순위 큐 문제 문제 풀이 풀이 우선순위 큐를 이용해 풀 수 있는 문제이다. 앞에서 2개를 pop한 뒤 그 합을 2번 push해주고를 반복하면 된다. 소스코드 from sys import stdin from heapq import heappop,heappush input=stdin.readline n,m=map(int,input().split()) cards=[] for i in map(int,input().split()): heappush(cards,i) for i in range(m): x,y=heappop(cards),heappop(cards) x=y=x+y heappush(cards,x..
https://www.acmicpc.net/problem/5430 문제 선영이는 주말에 할 일이 없어서 새로운 언어 AC를 만들었다. AC는 정수 배열에 연산을 하기 위해 만든 언어이다. 이 언어에는 두 가지 함수 R(뒤집기)과 D(버리기)가 있다. 함수 R은 배열에 있는 수의 순서를 뒤집는 함수이고, D는 첫 번째 수를 버리는 함수이다. 배열이 비어있는데 D를 사용한 경우에는 에러가 발생한다. 함수는 조합해서 한 번에 사용할 수 있다. 예를 들어, "AB"는 A를 수행한 다음에 바로 이어서 B를 수행하는 함수이다. 예를 들어, "RDD"는 배열을 뒤집은 다음 처음 두 수를 버리는 함수이다. 배열의 초기값과 수행할 함수가 주어졌을 때, 최종 결과를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케..
문제 https://www.acmicpc.net/problem/1895 1895번: 필터 숫자 9개가 오름차순이나 내림차순으로 정렬되어 있을 때, 중앙값은 다섯 번째 숫자이다. 예를 들어, 1, 3, 4, 1, 2, 6, 8, 4, 10의 중앙값은 4이다. (1 ≤ 1 ≤ 2 ≤ 3 ≤ 4 ≤ 4 ≤ 6 ≤ 8 ≤ 10) 이미지 I는 www.acmicpc.net Algorithm 주어진 배열을 입력받아 3*3내에서의 T값보다 크거나 같은 것의 개수를 출력하면 된다. 주어진 배열이 40이하의 자연수 이므로 최대 38*38개수의 필터가 있고, 필터 내에서 중앙값을 구하는데, 이때 9개의 원소를 정렬하는 것이므로 9log9정도의 시간복잡도를 가진다. 38*38*9log9 = 약12996이므로 브루트포스로 풀 ..
풀이 주어진 문자열의 괄호쌍이 맞는지확인하는 문제이다. 변수 t를 입력받는다. t는 이후에 입력될 문자열의 개수를 나타낸다. bool isValid = true;를 통해 문자열의 괄호 짝이 맞는지를 저장하는 변수를 초기화합니다. str[i]가 '('인 경우, 스택에 '('를 push한다. str[i]가 ')'인 경우, 스택이 비어있거나 top이 '('가 아닌 경우, isValid를 false로 변경하고 break한다. 그렇지 않은 경우, 스택에서 '('를 pop한다. for문이 끝난 후, 스택이 비어있지 않은 경우, isValid를 false로 변경한다. isValid가 true인 경우, "YES"를 출력하고 그렇지 않은 경우, "NO"를 출력한다. 코드 #include #include #include ..
KauKoala
'Koala - 10기' 카테고리의 글 목록 (3 Page)