본문 바로가기
파이썬(Python)

[BOJ] 백준 10807번 개수 세기 문제 코드 및 해석

by 안한량 2022. 12. 31.
728x90

문제의 링크 : https://www.acmicpc.net/problem/10807

 

10807번: 개수 세기

첫째 줄에 정수의 개수 N(1 ≤ N ≤ 100)이 주어진다. 둘째 줄에는 정수가 공백으로 구분되어져있다. 셋째 줄에는 찾으려고 하는 정수 v가 주어진다. 입력으로 주어지는 정수와 v는 -100보다 크거

www.acmicpc.net

 

요약 :

첫째 줄에 정수의 개수 N(1 ≤ N ≤ 100)이 주어진다.

둘째 줄에는 정수가 공백으로 구분되어 있다. 

셋째 줄에는 찾으려고 하는 정수 v가 주어진다. 

입력으로 주어지는 정수와 v는 -100보다 크거나 같으며, 100보다 작거나 같다.

 

입력 데이터 :
첫째줄 11 <- int

둘째줄 1 4 1 2 ... <- str

셋째 줄 2 <- int

 

출력 int

 


해야 하는 일

1. 총 입력 데이터의 개수를 받기

 

2.
1 4 1 2 4 ... 와 같은 긴 문자형 데이터를 입력받아

[1, 4, 1, 2, 4 ...] 형태의 배열로 저장.

 

3. 셋째줄 비교할 정수 '2'를 받아 앞에서 만든 배열과 하나씩 비교 후 같을 때마다 count.


코드

def solution():
    cnt = 0
    num = int(input())                  #첫째줄 데이터 개수 정수
    str_list = map(int, input().split())#둘째줄 문자열 데이터 받아 저장
    val = int(input())                  #val = 셋째줄 비교할 정수
    
    for i in str_list:                  #str list 내부 int와 val 비교
        if i == val:
            cnt += 1

    print(cnt)

solution()

 

map을 사용하여
int 자료형으로
들어온 input의 공백을 기점으로 나눠서

str_list에 저장.

 

반복문을 통해 셋째 줄에 입력받은 val ( 3 )과 같을 경우 cnt에 1씩 더하기.

 

카운트 값을 출력.

 

예제

1 4 1 2 4 2 4 2 3 4 4 에는 '2'가 3개이므로

3 출력.

 

 

728x90