본문 바로가기

Problem Solving/boj.kr (Python)55

[BOJ / 파이썬] 8958 : OX 퀴즈 문제 : https://www.acmicpc.net/problem/8958 8958번: OX퀴즈 "OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수 www.acmicpc.net Sol ) 1. 문자열을 순회하면서 "X"를 만나면 point를 1점으로 초기화 2. "X"가 아닐경우 result에 점수를 누적 3. "X"가 아닐경우 point를 1씩 키워준다. 4. 모든 순회 종료후 result 출력 5. 모든 테스트케이스에 위의 로직을 반복한다. 소스코드 ) for _ in range(int(input())): point = 1 result =.. 2022. 2. 7.
[BOJ / 파이썬] 1546 : 평균 문제 : https://www.acmicpc.net/problem/1546 1546번: 평균 첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보 www.acmicpc.net Sol ) 1. 배열을 순회하면서 배열에서 최댓값 탐색 ( max 함수를 이용해 순회 과정 생략 ) 2. 배열을 순회하면서 각 배열의 값 / 최댓값 * 100의 값을 result에 누적 3. 누적 값 / n 출력 (파이썬의 /은 실수 연산) 소스코드 ) n = int(input()) arr = list(map(int,input().split())) max_num = max(arr) .. 2022. 2. 7.
[BOJ / 파이썬] 3052 : 나머지 문제 : https://www.acmicpc.net/problem/3052 3052번: 나머지 각 수를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1이다. 서로 다른 값은 6개가 있다. www.acmicpc.net Sol ) 1. 0으로 초기화한 크기 42의 배열 cnt 2. 입력 배열을 순회하면서 42로 나눈 나머지 값을 인덱스로 cnt 배열에 하나씩 추가 3. cnt_arr을 순회하면서 0이 아닌 인덱스의 개수를 카운트 소스코드 ) cnt = [0 for _ in range(42)] result = 0 for _ in range(10): cnt[int(input())%42] += 1 for i in range(len(cnt)): if cnt[i]>0: result .. 2022. 2. 7.
[BOJ / 파이썬] 2577 : 숫자의 개수 문제 : https://www.acmicpc.net/problem/2577 2577번: 숫자의 개수 첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다. A, B, C는 모두 100보다 크거나 같고, 1,000보다 작은 자연수이다. www.acmicpc.net Sol ) 1. 길이 10짜리 배열을 만들어서 모든 인덱스를 0으로 초기화 (cnt_arr) 2. 세 수의 곱셈을 result 변수에 저장 3. result를 10씩 나누어주면서 각 자리의 숫자를 cnt_arr [숫자]에 저장 4. 1에서 만든 배열 각 인덱스에 해당하는 숫자만큼 저장되어 있으므로 반복하며 출력 소스코드 ) result = 1 cnt_arr = [0 for _ in range(10)]; for _ in range(3): res.. 2022. 2. 7.