Koala - 9기

https://www.acmicpc.net/problem/5363 5363번: 요다 첫째 줄에 문장의 수 N이 주어진다. 둘째 줄부터 N개의 줄에는 각 문장이 주어진다. 문장의 길이는 100글자 이내이다. 단어의 개수는 3개 이상이다. www.acmicpc.net 문제 해석 문장 맽 앞에 있는 두 단어를 맨 뒤로 보낸 다음 다시 출력하면 된다. 문제 풀이 input().split()을 이용해 단어를 여러개 받고 [:2] 와 [2:]을 이용해 새로운 문자열 [2:] + [:2]를 출력하면 된다. 전체 코드
1350번: 진짜 공간 (acmicpc.net) 1350번: 진짜 공간 첫째 줄에 파일의 개수 N이 주어진다. N은 50보다 작거나 같은 자연수이다. 둘째 줄에는 파일의 크기가 공백을 사이에 두고 하나씩 주어진다. 파일의 크기는 1,000,000,000보다 작거나 같은 음이 아닌 www.acmicpc.net 문제 문제코드 a= int(input()) arr = list(map(int, input().split())) b=int(input()) x=0 for i in range(a): if arr[i]!=0 and arr[i]
https://www.acmicpc.net/problem/6996 6996번: 애너그램 첫째 줄에 테스트 케이스의 개수(
이 문제는 2진수 -> 10진수 변환과 10진수 -> 2진수 변환 모두를 구현해야 하는 문제이다. 파이썬 내장 함수와 문자열 인덱싱을 통해 쉽게 구현할 수도 있지만, 직접 코드를 작성해보았다. https://www.acmicpc.net/problem/11179 11179번: 2진수 뒤집기 희연이는 스웨덴으로 이사하여 현재 학교를 다니고 있다. 1학년 교육과정은 중국에서 배웠고, 스웨덴과 중국 두 나라의 교육과정은 완전히 다르다. 희연이는 수학을 좋아한다. 하지만 지금은. www.acmicpc.net 💻 최종 코드 n = int(input()) b = [] x = 0 ans = [] c = 0 while n != 0: if n % 2 == 0: b.append('0') else: b.append('1') ..
1350번: 진짜 공간 첫째 줄에 파일의 개수 N이 주어진다. N은 50보다 작거나 같은 자연수이다. 둘째 줄에는 파일의 크기가 공백을 사이에 두고 하나씩 주어진다. 파일의 크기는 1,000,000,000보다 작거나 같은 음이 아닌 www.acmicpc.net 문제 설명 클러스터의 용량 $c\in\Bbb Z,\ c\geq0$과 파일의 용량 $f\in\Bbb Z,\ f\geq 0$에 대해 각 파일이 팔요로 하는 클러스터의 개수는 $(f-1)$을 $c$로 나눈 몫에 1을 더한 값이 된다. 이는 $f=0$일 때도 성립한다. 각 파일에 필요한 클러스터의 수의 총합에 클러스터의 크기를 곱하면 구하는 값이 된다. 소스 코드
https://www.acmicpc.net/problem/10942 10942번: 팰린드롬? 총 M개의 줄에 걸쳐 홍준이의 질문에 대한 명우의 답을 입력으로 주어진 순서에 따라서 출력한다. 팰린드롬인 경우에는 1, 아닌 경우에는 0을 출력한다. www.acmicpc.net 문제 명우는 홍준이와 함께 팰린드롬 놀이를 해보려고 한다. 먼저, 홍준이는 자연수 N개를 칠판에 적는다. 그 다음, 명우에게 질문을 총 M번 한다. 각 질문은 두 정수 S와 E(1 ≤ S ≤ E ≤ N)로 나타낼 수 있으며, S번째 수부터 E번째 까지 수가 팰린드롬을 이루는지를 물어보며, 명우는 각 질문에 대해 팰린드롬이다 또는 아니다를 말해야 한다. 예를 들어, 홍준이가 칠판에 적은 수가 1, 2, 1, 3, 1, 2, 1라고 하자...
1350번: 진짜 공간 (acmicpc.net) 1350번: 진짜 공간 첫째 줄에 파일의 개수 N이 주어진다. N은 50보다 작거나 같은 자연수이다. 둘째 줄에는 파일의 크기가 공백을 사이에 두고 하나씩 주어진다. 파일의 크기는 1,000,000,000보다 작거나 같은 음이 아닌 www.acmicpc.net 문제 어떤 파일 시스템에는 디스크 공간이 파일의 사이즈와 항상 같지는 않다. 이것은 디스크가 일정한 크기의 클러스터로 나누어져 있고, 한 클러스터는 오직 한 파일만 이용할 수 있기 때문이다. 예를 들어, 클러스터의 크기가 512바이트이고, 600바이트 파일을 저장하려고 한다면, 두 개의 클러스터에 저장하게 된다. 두 클러스터는 다른 파일과 공유할 수 없기 때문에, 디스크 사용 공간은 1024바이트가 ..
https://www.acmicpc.net/problem/10867 10867번: 중복 빼고 정렬하기 첫째 줄에 수의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째에는 숫자가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. www.acmicpc.net 문제풀이 set을 이용해 중복을 삭제하고 오름차순으로 정렬 후 출력하면 되는 간단한 문제였다. 하지만 이 글을 작성하게된 이유는 문자열 정렬에 대한 실수를 공유하기 위해서이다. 처음에는 간단히 join으로 출력해야지~ 생각하고 string으로 입력을 받아 처리했다 n = int(input()) a = set(map(str,input().split())) print(' '.join(sorted(list(a)))) 하지만, 백준은..
문제 n가지 종류의 동전이 있다. 각각의 동전이 나타내는 가치는 다르다. 이 동전을 적당히 사용해서, 그 가치의 합이 k원이 되도록 하고 싶다. 그 경우의 수를 구하시오. 각각의 동전은 몇 개라도 사용할 수 있다. 사용한 동전의 구성이 같은데, 순서만 다른 것은 같은 경우이다. 입력 첫째 줄에 n, k가 주어진다. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) 다음 n개의 줄에는 각각의 동전의 가치가 주어진다. 동전의 가치는 100,000보다 작거나 같은 자연수이다. 정답코드 # 동전 1 # 복습횟수:0, 02:00:00 import sys si = sys.stdin.readline N, K = map(int, si().split()) dp = [0] * (K+1) dp[0] = 1 # coin ..
2511번: 카드놀이 첫 번째 줄에는 게임이 끝난 후, A와 B가 받은 총 승점을 순서대로 빈칸을 사이에 두고 출력한다. 두 번째 줄에는 이긴 사람이 A인지 B인지 결정해서, 이긴 사람을 문자 A 또는 B로 출력한다. 만약 www.acmicpc.net 문제코드
문제 분석 해당 문제의 시간 복잡도는 0.5초이고, 메모리 제한은 4MB이다. 메모리가 굉장히 적으므로 주어진 n 크기로 2차원 배열을 만들 경우, 메모리가 초과된다. 즉, 최대 공간 복잡도가 n을 사용할 경우 사용할 수 있는 자료구조는 일차원 배열 정도이다. 1차원 배열이라는 제한에서 사용할 수 있는 알고리즘 수는 많지 않다. 이와 같은 상황을 고려하여, DP를 통해 문제를 해결해야 겠다고 생각했다. 문제 풀이 DP는 이전에 구했던 답을 이용하여 현재의 답을 도출하는 알고리즘이다. 그렇다면, 우리가 구해야 할 경우의 수를 이전 값을 통해 현재 값을 도출하는 형태로 구현할려면 어떤 값을 기준으로 DP를 구성해야할까. 해당 문제는 동전의 합이 k가 되도록 하는 경우의 수이다. k값에 따라 동전의 경우를 구..
문제 https://www.acmicpc.net/problem/2565 Algorithm 전깃줄이 교차하지 않기 위해서는 어떤 형태로 배치되어야 하는지 파악하는 것이 핵심이다. "연결되어 있는 B의 번호들이 오름차순을 이룬다면, 전깃줄은 교차하지 않는다." 위 아이디어만 파악했다면, 다음 과정을 차례대로 수행한다. 1. 문제에서의 그림과 같은 형태로 전깃줄을 배치하기 위해, A 전봇대의 번호를 기준으로 오름차순 정렬한다. 2. 이제 B에 연결된 전깃줄들이 오름차순을 이루어야 하므로, 가장 긴 증가하는 부분 수열의 길이를 구한다. 여기서, 가장 긴 증가하는 부분 수열의 길이를 구하는 과정은 다음과 같다. 1. 이전 지점보다 현재 지점의 값이 크다면, 현재 지점까지의 증가하는 부분 수열의 길이가 1 증가한다..
KauKoala
'Koala - 9기' 카테고리의 글 목록 (13 Page)