Olive Study Room
[백준 알고리즘] #2439번 : stride, print(_:separator:terminator:) 본문
stride(from:to:by:)
시작 value부터 to value까지의 시퀀스를 반환하는데, 마지막 value는 포함하지 않고 지정된 양만큼씩 뛰어넘는다.
Declaration
func stride<T>(from start: T, to end: T, by stride: T.Stride) -> StrideTo<T> where T : Strideable
Example
for i in stride(from: 1, to: 5, by: +1) {
print(i)
}
//1
//2
//3
//4
-> 이처럼 마지막 인덱스틑 출력이 되지 않는다!
포함할 수는 없을까?
stride(from:through:by:)
시작 value에서 마지막 value까지의 시퀀스를 만환하는데, 마지막 value를 포함하여 지정된 양만큼 뛰어넘는다.
Declaration
func stride<T>(from start: T, through end: T, by stride: T.Stride) -> StrideThrough<T> where T : Strideable
Example
for i in stride(from: 1, through: 5, by: +1) {
print(i)
}
//1
//2
//3
//4
//5
print(_:separator:terminator:)
주어진 항목의 텍스트 표현을 표준 출력에 쓴다.
Parameter
1. separator
print("This", "is", "peng", "dev", separator: "/")
// This/is/peng/dev
여러 항목이 있을 때 separator을 사이사이 넣어준다!
2. terminator
for i in 1...5 {
print(i)
}
// 1
// 2
// 3
// 4
// 5
for i in 1...5 {
print(i, terminator: "")
}
// 12345
디폴트는 \n(줄 내림이고 따로 설정해줄 수 있다.
# 2439번
1. 단순 for문으로 푼 경우
- i가 line이 되기 전까지만 돌려야함
let line = Int(readLine()!)!
for i in 1...line {
var str: String = ""
if i != line {
for _ in 1...line-i {
str.append(" ")
}
}
for _ in 1...i {
str.append("*")
}
print(str)
}
2. print(_, terminator: "")
let line = Int(readLine()!)!
for i in 1...line {
for _ in 0..<line-i {
print(" ", terminator: "")
}
for _ in 1...i {
print("*", terminator: "")
}
print("")
}
3. stride 사용
let line = Int(readLine()!)!
for i in 1...line {
var str = ""
for _ in stride(from: line, to: i, by: -1) {
str.append(" ")
}
for _ in stride(from: 0, to: i, by: 1) {
str.append("*")
}
print(str)
}
'cs > 알고리즘' 카테고리의 다른 글
[백준 알고리즘] #2577번 : 정수가 포함하는 숫자 개수 출력 / forEach (0) | 2021.06.19 |
---|---|
[백준 알고리즘] #10818번 : 배열/속도 향상 (0) | 2021.06.19 |
[백준 알고리즘] #10951번 : EOF (0) | 2021.06.18 |
[백준 알고리즘] 1. 입출력과 사칙연산 / 2. if문 / 3. for문 / 4. while문 (0) | 2021.06.08 |
[알고리즘] 1. 알고리즘의 분석: 시간 복잡도 (0) | 2021.04.22 |
Comments