이번 포스팅은 www.acmicpc.net/problem/3052에서 푼 것을 토대로 작성했습니다. 1차원 배열의 네 번째 문제인 나머지입니다. 문제. 문제를 보시면 숫자 10개를 입력 받고 42를 나눈 나머지를 구한뒤 다른 다른 값이 몇개인지 출력하는 프로그램입니다. 코딩. import sys x = [] for i in range(10): n = int(sys.stdin.readline()) x.append(n%42) x = set(x) print(len(x)) 먼저 x=[] 로 빈 리스트를 만들어 준뒤 for문을 사용하여 n을 10번 입력 받게 만들어주고 저번 문제에서 사용했던 append를 사용하여 n%42 값을 차례대로 추가해 줬습니다. 그리고 set이라는 자료형을 공부했는데 set이란 집합 자..
Python
이번 포스팅은 www.acmicpc.net/problem/2577에서 푼 것을 토대로 작성했습니다. 1차원 배열의 세 번째 문제인 숫자의 개수입니다. 이번 문제는 숫자 세개를 입력하고 곱하여 숫자의 개수를 카운팅 하는 프로그램입니다. 보니까 지니어스 프로그램에서 장동민씨가 결승전에서 풀었던 그 문제였네요 코딩 import sys a = int(sys.stdin.readline()) b = int(sys.stdin.readline()) c = int(sys.stdin.readline()) x = list(str(a*b*c)) for i in range(10): count = x.count(str(i)) print(count) 저는 먼저 숫자 세개를 int로 입력받고 x로 list를 만들면서 str형으로 지..
이번 포스팅은 www.acmicpc.net/problem/2562에서 푼 것을 토대로 작성했습니다. 1차원 배열의 두 번째 문제인 최댓값입니다. 지난번 최대, 최소와는 다르게 이번 문제는 숫자를 9번 입력하고 9개의 숫자에서 최댓값과 몇 번째 숫자인지 나오게 하는 프로그램입니다. 방법 1. import sys Max_n = 0 Max_i = 0 for i in range(9): n = int(sys.stdin.readline()) if n > Max_n: Max_n = n Max_i = i + 1 print(Max_n) print(Max_i) 제가 첫 번째 쓴 방법은 리스트 함수를 쓰지 않고 최댓값과 i의 값을 구하게 만들었습니다. for문을 사용하여 9번 입력하고 n과 Max_n을 비교하여 n이 더 크..
이번 포스팅은 www.acmicpc.net/problem/10818에서 푼 것을 토대로 작성했습니다. 1차원 배열의 첫 번째 문제인 최소, 최대입니다. 문제는 N개의 정수를 받아 최솟값과 최댓값을 구하는 프로그램을 만드는 것입니다. 첫째줄의 정수 N을 설정하고 둘째 줄에는 N개의 정수를 공백으로 입력받게 만들어야 합니다. 출력으로 N개 중에서 최대와 최소를 공백으로 구분하여 출력하게 만들어야 합니다. import sys n = int(sys.stdin.readline()) num = list(map(int, sys.stdin.readline().split())) print(min(num),max(num), end = ' ') ### 다른 방법 print('{} {}'.format(min(num),max(..
이번 포스팅은 www.acmicpc.net/problem/1110에서 푼 것을 토대로 작성했습니다. While문의 마지막 문제인 더하기 사이클입니다. 문제를 보시면 정수 N이 입력되고 계산식에 따라 진행된 후 N이 다시 나오는 사이클 수를 나오게 만드는 프로그램입니다. 예를 들어 26을 입력한다면 1. 2+6 = 8, 그리고 68 2. 6+8 = 14, 그리고 84 3. 8+4 = 12, 그리고 42 4. 4+2 = 6, 입력과 같은 26이 나오기까지 4번 계산을 반복했기 때문에 출력에서 4가 나오는 것을 볼 수 있습니다. 그리고 10보다 작다면 0을 붙여 두 자리 수로 만들어 계산을 하라고 하는데 파이썬에서는 int로 계산하면 알아서 해주기 때문에 신경 쓰지 않았습니다. - 실패 코드(시간초과) ###..
이번 포스팅은 www.acmicpc.net/problem/10951에서 푼 것을 토대로 작성했습니다. While문의 두 번째 문제인 A+B -4입니다. 0,0을 입력하면 while문을 빠져나왔던 지난 문제와는 달리 입력을 계속해서 넣으면, 즉 에러가 없으면 프로그램이 계속 동작되게 만드는 문제입니다. import sys while True : try : a,b = map(int, sys.stdin.readline().split()) print(a+b) except : break 그래서 저는 try-except 구문을 사용하였습니다 프로그램 중에는 어떤 것을 입력해야 하는 경우 에러가 발생할 가능성이 있습니다. 구문 오류가 발생할 때 해결 가능한 코드가 try-except입니다. 위와 같은 경우는 int를..
이번 포스팅은 www.acmicpc.net/problem/10952에서 푼 것을 토대로 작성했습니다. While문의 첫 번째 문제인 A+B -5입니다. 문제와 입력을 보시면 띄어쓰기로 A, B를 입력받고 A+B를 출력 나오게 하는 문제이며 A, B에 0,0을 입력했을 때 프로그램이 종료되게 하게 만들어야 합니다. import sys while True: a,b = map(int,sys.stdin.readline().split()) if a == 0 and b == 0: break print(a+b) while문을 무한루프로 돌리기 위해 True를 조건으로 입력하고 a와 b를 띄어쓰기로 입력을 받았습니다. 그리고 if문으로 a와 b가 0일 때 break로 while 무한루프를 벗어나게 만들고 a+b를 출력..
이번 포스팅은 www.acmicpc.net/problem/10871에서 푼 것을 토대로 작성했습니다. for문의 열한 번째 문제인 X보다 작은 수입니다. 문제를 보시면 N개로 이루어진 수열 A가 주어지고 A에서 X보다 작은 수를 출력하게 만드는 문제입니다. 여러 방법으로 해보려고 했지만 잘 안되었고 list로 푸는 게 역시 제일 쉬웠네요 :( import sys n,x = map(int,sys.stdin.readline().split()) a = list(map(int,sys.stdin.readline().split())) for i in range(n): if a[i] < x : print(a[i], end = " ") 먼저 n, x를 map과 sys로 받고 a를 list로 받아 수열을 만들어줍니다 그..