백준 10807번 - 개수 세기

이설군·2022년 6월 27일
0

백준

목록 보기
51/52

문제

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

입력

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

출력

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

예제 입력 1

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

예제 출력 1

3

예제 입력 2

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

예제 출력 2

0


제출

맞은 제출 1

let n = Int(readLine()!)!
let x = readLine()!.split{$0==" "}.map{Int($0)!}
let v = Int(readLine()!)!
var count = 0

for i in 0..<n {
	if x[i]==v {
    	count += 1
    }
}
print(count)

오답노트

틀린 제출 1

let n = Int(readLine()!)!
let x = readLine()!.split{$0==" "}.map{Int($0)!}
let v = Int(readLine()!)!
var count = 0

for i in x {
	if i==v {
    	count += 1
    }
}

문제해석도 좀 틀림 n을 활용하지 않음.
print를 넣지 않아서 ㅋㅋㅋ 출력을 안함

숏코딩

숏코딩 예제 1

_ = readLine()
print(Dictionary(readLine()!.split{$0 == " "}.map{ (String($0), 1) }, uniquingKeysWith: +)[readLine()!] ?? 0)

Dictionary를 사용한 예제인데 몰겠음;
_ = readLine()를 사용. 처음 받는 값은 아에 사용을 안하니까 끄덕끄덕

숏코딩 예제 2

let N = Int(readLine()!)!
let num = readLine()!.split(separator: " ").map{Int($0)!}
let v = Int(readLine()!)!
print(num.filter{$0 == v}.count)

filter{$0 == v}를 사용했다. 대박. filter 기억해두자!

profile
티끌 모아 태산. 내가 가는 길이 옳은 길이라 믿으며 최선을 다해 걷는다.

0개의 댓글