전체 글

항공대 알고리즘 동아리 Koala 🥰
https://www.acmicpc.net/problem/10707 10707번: 수도요금 JOI군이 살고 있는 지역에는 X사와 Y사, 두 개의 수도회사가 있다. 두 회사의 수도요금은 한 달간 수도의 사용량에 따라 다음과 같이 정해진다. X사 : 1리터당 A엔. Y사 : 기본요금은 B엔이고, 사용량 www.acmicpc.net 코드 a = int(input()) b = int(input()) c = int(input()) d = int(input()) p = int(input()) c1 = a * p if c < p: c2 = b + ((p - c) * d) else: c2 = b if c1 < c2: print(c1) else: print(c2) 풀이 x사를 이용할 때의 요금과 y사를 이용할 때의 요금..
문제 링크 11365번: !밀비 급일 당신은 길을 가다가 이상한 쪽지를 발견했다. 그 쪽지에는 암호가 적혀 있었는데, 똑똑한 당신은 암호가 뒤집으면 해독된다는 것을 발견했다. 이 암호를 해독하는 프로그램을 작성하시오. www.acmicpc.net 문제 문제 해석 입력받는 문장을 뒤집어 출력하는 문제이다. 코드 #include #include int main(void) { char password[502]; //암호 500자 + 개행문자 \n + 널문자 \0 = 502칸 while (1) { fgets(password, sizeof password, stdin); if (password[0] == 'E' && password[1] == 'N' && password[2] == 'D') break; passw..
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/2576 문제 7개의 자연수가 주어질 때, 이들 중 홀수인 자연수들을 모두 골라 그 합을 구하고, 고른 홀수들 중 최솟값을 찾는 프로그램을 작성하시오. 예를 들어, 7개의 자연수 12, 77, 38, 41, 53, 92, 85가 주어지면 이들 중 홀수는 77, 41, 53, 85이므로 그 합은 77 + 41 + 53 + 85 = 256 이 되고, 41 < 53 < 77 < 85 이므로 홀수들 중 최솟값은 41이 된다. 문제 코드 문제 풀이 7번 반복하는 for문을 사용하여 n값을 7번 입력받음. 그리고 각각 입력받을 때 if문을 사용하여 홀수인지 아닌지 구분함. 만약 홀수라면 홀수의 합을 구하기 위해 sum값에 n값을 더해줌. 그리고 if문 안에 ..
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 ..
KauKoala
Koala