본문 바로가기
알고리즘 풀이

[알고리즘] 백준 | 개수 찾기, X보다 작은 수, 최소,최대, 최댓값

by 째깍단 2023. 9. 5.

1차원 배열문제를 차근차근 풀이하고있다.

개수 찾기

답: 

더보기
from sys import stdin

input = stdin.readline

N = int(input())
num_list = list(map(int, input().split()))
v = int(input())

count = 0
for num in num_list:
    if v == num:
        count += 1
print(count)

 

 

문제 분석 및 해석

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

 

입력: 

11
1 4 1 2 4 2 4 2 3 4 4
2

출력:

3

 

 

리뷰.

간단해서 한줄 코딩도 가능할듯 하다

 


X보다 작은 수

답: 

더보기
from sys import stdin

input = stdin.readline

N, X = input().split()
num_list = list(map(int, input().split()))

answer = []
for num in num_list:
    if num < int(X):
        answer.append(num)
print(*answer)

 

 

문제 분석 및 해석

X보다 작은 수

정수 N개로 이루어진 수열 A와 정수 X가 주어진다. A에서 X보다 작은 수를 모두 출력

 

첫째 줄에 N과 X

둘째 줄에 수열 A를 이루는 정수 N개

 

입력

10 5

1 10 4 9 2 3 8 5 7 6

출력

1 4 2 3

 

 

리뷰.

N, X를 spilt으로 받았으므로 int를 하려면 map을 사용해야함을 알게되었다.

그래서 문자열로 받고 int(X)  

 


최소, 최대

답: 

더보기
from sys import stdin

input = stdin.readline

N = int(input())
num_list = list(map(int, input().split()))

# ---- min max함수로 찾기
print(min(num_list), max(num_list))

# ---- sort로 찾기
num_list.sort()
print(num_list[0], num_list[-1])

# ---- N 사용해서 찾기
최소값 = num_list[0]
최댓값 = num_list[0]

for i in range(N):
    if 최소값 > num_list[i]:
        최소값 = num_list[i]
    if 최댓값 < num_list[i]:
        최댓값 = num_list[i]

print(최소값, 최댓값)

 

 

문제 분석 및 해석

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

 

첫째 줄에 정수의 개수 N

둘째 줄에는 N개의 정수를 공백으로 구분

 

입력

5

20 10 35 30 7

출력

7 35

 

 

리뷰.

여러가지 방법으로 풀이하면서 특히 for문으로 비교하며 저장하는 방식을 기억해두고자 했다.

 

그리고 min max함수가 코드 길이도, 시간도 빠르다는 것을 확실하게 확인할 수 있었다.

맨위부터 차례로  N 사용해 풀기, sort, min max 로 풀기

 


최댓값

답: 

더보기
from sys import stdin

input = stdin.readline

new_list = [0]
for _ in range(9):
    num = int(input())
    new_list.append(num)

# ----  max값과 Index 함수로 구하기
max_num = max(new_list)
print(max(new_list))
print(new_list.index(max_num))

# ---- for문으로 찾기
max_num = new_list[0]
idx = 0

for i, v in enumerate(new_list):
    if v > max_num:
        max_num = v
        idx = i

print(max_num)
print(idx)

 

 

문제 분석 및 해석

9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하기

 

입력

3

29

38

12

57

74

40

85

61

 

>> 풀이생각

9만큼만 주어지니 for문으로 담자

 

 

리뷰.

역시나 max 함수가 더 빨랐다

max를 매번 쓰더라도 활용할 수 있도록 방법은 늘 기억해놓자