문제 https://www.acmicpc.net/problem/1065 1065번: 한수 어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 www.acmicpc.net 1부터 n(입력하는 정수)까지 중 한수가 몇 개인지 출력하면 되는 문제. 한수는 각 자릿수가 등차수열인 수를 말한다. (예: 123) 공차가 양수건 음수건 0이건 걍 일정하면 된다. 풀이 일단 등차수열인지를 봐야 하는거라서 한자리와 두자리는 그냥 한수로 쳐준다. 두자리 수의 경우 공차가 하나밖에 없기 때문. 한자리는 뭐지 특별채용? 그래서 처리를 두 개 해야 한다. 100보다 큰가? 한수인가? ..
문제 https://www.acmicpc.net/problem/15596 15596번: 정수 N개의 합 C++17, Java 8, Python 3, C11, PyPy3, C99, C++98, C++11, C++14, Go, C99 (Clang), C++98 (Clang), C++11 (Clang), C++14 (Clang), C11 (Clang), C++17 (Clang) www.acmicpc.net 리스트 내 숫자를 전부 더하는 ‘함수를 짜시오’. 풀이 언어에 따라 입력받는 인자가 다른데, python의 경우 리스트를 입력받아서 합을 출력한다. 참고로 python에서 함수를 정의하는 형식은 def plus(a, b): c = a+b return c print(plus(5,6)) 이런 식이다. impor..
문제 https://www.acmicpc.net/problem/4344 4344번: 평균은 넘겠지 대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다. www.acmicpc.net 이걸로 요약 쌉가능. 시험 점수의 평균을 내고, 그 평균 초과인 사람들의 비율을 계산해 소수점 아래 세 자리로 출력하면 된다. 선생님께서는 어디 계십니까? 저기 3시그마 바깥에 어디 있을걸요 풀이 import sys a = int(sys.stdin.readline()) for i in range(a): caselist = sys.stdin.readline().split(" ") 역사와 전통의(?) sys.stdin.readline()을 또 우려먹을 수 있다. 대신 이번..
문제 https://www.acmicpc.net/problem/8958 8958번: OX퀴즈 "OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수 www.acmicpc.net 연속으로 맞추면 가산점이 붙는 OX퀴즈 채점하기. 예를 들어서 OOOXOXOX면 1+2+3+0+1+0+1+0, 합이 8점이다. 풀이 import sys a=int(sys.stdin.readline()) for i in range(a): print(i) 입력단은 쉽다. 역시나 sys.stdin.readline() 나왔고요… import sys a=int(sys.stdin.r..
문제 https://www.acmicpc.net/problem/1546 1546번: 평균 첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보 www.acmicpc.net 성적별 최댓값을 바탕으로 재계산해서 평균 올리기. 재계산 공식은 원점수/최댓값*100이다. 이거 뭐 나누는 거 아니고 그냥 순서대로 하면 된다. 근데 이거 이렇게 조작해도 금방 뽀록나던데 풀이 import sys subject=int(sys.stdin.readline()) # 과목 수 score=list(map(int,sys.stdin.readline().split(" "))) # 과목..
문제 https://www.acmicpc.net/problem/3052 3052번: 나머지 각 수를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1이다. 서로 다른 값은 6개가 있다. www.acmicpc.net 정수 10개를 입력받고, 그 수를 어떤 수로 나눈 나머지에서 서로 다른 숫자의 개수를 출력한다. 풀이 일단 당황하지 말고 천천히 생각해보자. 이 문제를 풀기 위해서 필요한 기능은 입력을 받고 나눈 다음 나머지에서 중복값을 빼는 기능 이다. 사실 입력은 import sys a = int(sys.stdin.readline()) b = int(sys.stdin.readline()) c = int(sys.stdin.readline()) d = int(sys.stdin...
문제 https://www.acmicpc.net/problem/2577 2577번: 숫자의 개수 첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다. A, B, C는 모두 100보다 크거나 같고, 1,000보다 작은 자연수이다. www.acmicpc.net 세 자리 수 세 개를 곱하면 어떤 값이 나올텐데, 그 값에서 0~9까지의 숫자가 몇 개를 썼는지 세면 된다. 입력값은 줄당 하나이고, 출력값은 9줄. 풀이 import sys a = int(sys.stdin.readline()) b = int(sys.stdin.readline()) c = int(sys.stdin.readline()) # Input Jupyter에서는 sys 뭐시기 리드라인이 안되는데(모듈 불러오는 건 되는데 입력이 안된다), V..
문제 https://www.acmicpc.net/problem/2438 2438번: 별 찍기 - 1 첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제 www.acmicpc.net https://www.acmicpc.net/problem/2439 2439번: 별 찍기 - 2 첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제 하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오. www.acmicpc.net 별찍기 문제. 좌우로 정렬하면 된다. 풀이 a=int(input()) for i in range(1,a+1): print("*"*i) # 2438번 a=int(input()) for i in range(a): print(" "*(a..
문제 https://www.acmicpc.net/problem/8393 8393번: 합 n이 주어졌을 때, 1부터 n까지 합을 구하는 프로그램을 작성하시오. www.acmicpc.net 초항이 1이고 공차가 1인 등차수열에 대해 n번째 항(입력값)까지의 합 구하기 풀이 사실 While쪽이 편하긴 하지만, for로도 안되지는 않는다. 둘 다 어쨌든 반복문이니까. a=int(input()) sum=0 for i in range(1,a+1): sum=sum+i print(sum) 이 코드도 돌아는 가는데, 이대로 제출하면 출력 초과가 뜬다. 왜냐하면 저대로 하게 되면 반복문 돌아갈때마다 결과가 나오기 때문. a=int(input()) sum=0 for i in range(1,a+1): sum=sum+i pri..
문제 https://www.acmicpc.net/problem/10950 10950번: A+B - 3 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net A+B를 입력받고 그 합을 출력하는 문제가 맞는데, 입력 인자가 3개다. 이 문제의 카테고리가 for문인 이유를 생각해보면 금방 유추하실 수도 있는데, 테스트 케이스를 입력받아서 그 케이스만큼 덧셈을 반복하는 게 문제. 풀이 a=int(input()) for i in range(a): for j in range(i): b,c=map(int,input().split(' ')) print(b+c) for문 두 번 박으면 되겠지? 했더니 Jupyter에서는 잘 되는데 제출했더니 EOF error가 반긴다...
문제 근데 여기 들어오는 사람들 중 사분면 모르는 사람이 있음? 까먹었다면 몰라도… https://www.acmicpc.net/problem/14681 14681번: 사분면 고르기 점 (x, y)의 사분면 번호(1, 2, 3, 4 중 하나)를 출력한다. www.acmicpc.net 여기서 xy가 둘 다 양수일 때를 기점으로 시계 반대방향으로 1, 2, 3, 4사분면이다. 축은 사분면으로 안 친다. 복소평면 아닌게 다행 풀이 x=int(input()) y=int(input()) if x > 0 and y > 0: print(1) elif x 0: print(2) elif x < 0 and y < 0: print(3) else: print(4) 위에서 축은 사분면으로 안 친다고 했는데,..
문제 https://www.acmicpc.net/problem/2753 2753번: 윤년 연도가 주어졌을 때, 윤년이면 1, 아니면 0을 출력하는 프로그램을 작성하시오. 윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때이다. 예를 들어, 2012년은 4의 배수이면서 www.acmicpc.net 어떤 연도를 입력했을 때 그 해가 윤년인지 아닌지를 구하시오(윤년이면 1, 아니면 0) 풀이 윤년이 뭔고 하니… 4의 배수 해가 되면 2월이 28일이 아니라 29일까지 있다. 그래서 윤년 끼면 내 생일이 2월 28일 다음날이 된다. 원래 윤년이 안 끼면 2월과 3월은 날짜가 같기 때문. a=int(input()) if a % 4 == 0 and a % 100 != 0: print(1..