Python/백준 알고리즘

이번 포스팅은 www.acmicpc.net/problem/4344에서 푼 것을 토대로 작성했습니다. 1차원 배열의 마지막 문제인 평균은 넘겠지입니다. 문제. 문제를 보시면 첫째 줄에 테스트 케이스 C가 주어지고 둘째 줄부터는 처음 입력은 학생 숫자 그 뒤로 학생 숫자만큼의 점수를 입력받고 출력에는 입력받은 점수의 평균이 넘는 학생 수의 비율을 나타내는 프로 그렇습니다. c = int(input()) for i in range(c): student = 0 x = list(map(int, input().split())) avg = sum(x[1:])/x[0] for j in x[1:]: if j > avg: student += 1 else : student += 0 rate = student/x[0]*100..
이번 포스팅은 www.acmicpc.net/problem/8958에서 푼 것을 토대로 작성했습니다. 1차원 배열의 여섯 번째 문제인 OX 퀴즈입니다. 문제. 테스트 케이스를 받고 OX의 개수를 세어 점수를 매기는 프로그램입니다. 하지만 단순히 O의 개수를 세는 것이 아니라 연속된 O에는 점수를 더 받는 프로그램으로 예를 들어 OXOOO 라면 1+0+1+2+3으로 계산되어야 합니다. 코딩. n = int(input()) for i in range(n): a = list(input()) score = 0 sum = 0 for j in a: if j == 'O': score += 1 else : score = 0 sum = sum + score print(sum) 저는 처음에 문제를 풀 때 지난 문제처럼 빈 ..
이번 포스팅은 www.acmicpc.net/problem/1546에서 푼 것을 토대로 작성했습니다. 1차원 배열의 다섯 번째 문제인 평균입니다. 문제. 문제를 보시면 새로운 평균을 만들게 하는 프로그램입니다. 점수 중 최고점을 M이라 두고 점수/M*100을 하여 새로운 점수를 구하고 새로운 점수로 새로운 평균을 출력으로 나타나게 해야 합니다. 코딩. n = int(input()) score = list((map(int,input().split()))) M = max(score) new_score = [] for i in range(n): new_score.append(score[i]/M*100) new_avg = sum(new_score)/n print("%.2f" %new_avg) 그래서 저는 시험 개..
이번 포스팅은 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이란 집합 자..
이번 포스팅은 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로 계산하면 알아서 해주기 때문에 신경 쓰지 않았습니다. - 실패 코드(시간초과) ###..
우준세
'Python/백준 알고리즘' 카테고리의 글 목록 (3 Page)