728x90
반응형
SMALL
문제
총 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
풀이
import Foundation
let n = Int(readLine()!)!
var array = readLine()!.components(separatedBy: " ").map { Int($0)! }
let v = Int(readLine()!)!
let result = array.filter { $0 == v }.count
print(result)
- 예전 같았다면 for문에.. if 문에 복잡하게 생각했을 것 같은데 map, filter 가 바로 생각나는 거 보니 나름 병아리 발톰만큼은 성장한 것 같다..
풀이 2
- map 과 같은 forEach를 사용한다면 다음과 같이 작성해 볼 수도 있다.
import Foundation
let n = Int(readLine()!)!
var array = readLine()!.components(separatedBy: " ").map { Int($0)! }
let v = Int(readLine()!)!
var result = 0
array.forEach {
if $0 == v {
result += 1
}
}
print(result)
map을 쓰면 메모리를 더 효율적으로 사용한다고 어딘가에서 읽었는데, 로직이 단순하다보니 큰 차이는 없나보다.
728x90
반응형
LIST
'Algorithm' 카테고리의 다른 글
[알고리즘]기초 : 백준 10818번, Swift Substring 란? (3) | 2023.10.10 |
---|---|
[알고리즘] 기초: 백준: 10871번 (0) | 2023.10.06 |
[알고리즘] 기초 : 백준 : 10951번 : EOF (0) | 2023.10.05 |
[알고리즘] 기초 : 백준 반복문 10952번 (1) | 2023.10.05 |
[알고리즘] 기초 : 백준 : 별찍기 1 2438번 (0) | 2023.10.04 |