코딩테스트

[백준][파이썬][단계별로풀어보기]10807번, 10871번, 10818번

jinaenya 2024. 11. 25. 10:47

 

스스로 연습하고 해당 내용을 기록하기 위해 작성하였습니다.

틀린 부분이 있으면 너그러이 댓글로 알려주시길 부탁드립니다.


10807번 개수 세기

문제

총 N개의 정수가 주어졌을 때, 정수 v가 몇 개인지 구하는 프로그램을 작성하시오.

입력

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

출력

첫째 줄에 입력으로 주어진 N개의 정수 중에 v가 몇 개인지 출력한다.

풀이1

import sys
N = int(sys.stdin.readline())
arr = list(map(int, sys.stdin.readline().split()))#리스트로 넣기
v = int(sys.stdin.readline())
print(arr.count(v))
 

풀이2

import sys
N = int(sys.stdin.readline())
arr = map(int, sys.stdin.readline().split())
v = int(sys.stdin.readline())
count = 0
for i in arr:
    if i == v:
        count += 1
print(count)
 

 

10871번 X보다 작은 수

문제

정수 N개로 이루어진 수열 A와 정수 X가 주어진다. 이때, A에서 X보다 작은 수를 모두 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 N과 X가 주어진다. (1 ≤ N, X ≤ 10,000)

둘째 줄에 수열 A를 이루는 정수 N개가 주어진다. 주어지는 정수는 모두 1보다 크거나 같고, 10,000보다 작거나 같은 정수이다.

출력

X보다 작은 수를 입력받은 순서대로 공백으로 구분해 출력한다. X보다 작은 수는 적어도 하나 존재한다.

풀이

import sys
N,X = map(int, sys.stdin.readline().split())
A = list(map(int, sys.stdin.readline().split()))#리스트로 넣기
for i in A:
    if i<X:
        print(i, end=' ')
 

 

 

10818번 최소, 최대

문제

N개의 정수가 주어진다. 이때, 최솟값과 최댓값을 구하는 프로그램을 작성하시오.

입력

첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다.

출력

첫째 줄에 주어진 정수 N개의 최솟값과 최댓값을 공백으로 구분해 출력한다.

풀이

import sys

N = int(sys.stdin.readline())
numbers = list(map(int, sys.stdin.readline().split()))
print(min(numbers), max(numbers))