4. 1차원 배열 (1)
https://www.acmicpc.net/step/6
1차원 배열 단계
배열을 활용하여 서로 다른 값의 개수를 찾는 문제
www.acmicpc.net
우선 2문제
백준 / 10807번
문제
총 N개의 정수가 주어졌을 때, 정수 v가 몇 개인지 구하는 프로그램을 작성하시오.
입력
첫째 줄에 정수의 개수 N(1 ≤ N ≤ 100)이 주어진다. 둘째 줄에는 정수가 공백으로 구분되어져있다. 셋째 줄에는 찾으려고 하는 정수 v가 주어진다. 입력으로 주어지는 정수와 v는 -100보다 크거나 같으며, 100보다 작거나 같다.
출력
첫째 줄에 입력으로 주어진 N개의 정수 중에 v가 몇 개인지 출력한다.
풀이
-Python3
N = int(input())
N_list = list(map(int, input().split()))
v = int(input())
print(N_list.count(v))
파이썬에서는 다른 언어들처럼 대괄호로 배열을 선언하는 것이 아니라, list() 함수로 받을 수 있다.
또한 생성된 list는 count() 함수를 호출하여 특정 값이 몇 개 있는지 확인할 수 있다.
백준 / 10871번
문제
정수 N개로 이루어진 수열 A와 정수 X가 주어진다. 이때, A에서 X보다 작은 수를 모두 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 N과 X가 주어진다. (1 ≤ N, X ≤ 10,000)
둘째 줄에 수열 A를 이루는 정수 N개가 주어진다. 주어지는 정수는 모두 1보다 크거나 같고, 10,000보다 작거나 같은 정수이다.
출력
X보다 작은 수를 입력받은 순서대로 공백으로 구분해 출력한다. X보다 작은 수는 적어도 하나 존재한다.
풀이
-Python3
N, X = map(int, input().split())
A = list(map(int, input().split()))
for i in range(N):
if A[i] < X:
print(A[i], end=" ")
배열에 접근할 때는 다른 언어들과 같은 형식이다. (ex. A[i])
각 인덱스에 대해서 X보다 작으면 출력되도록 if문을 설정했다.
print문에서 접미사를 설정하는 end= 는 헷갈리지만 자주 나오니 기억해둘 것!
난이도가 올라가니 한번에 많이 못 풀겠다 . .