티스토리 뷰
알고리즘 문제를 풀다보면 사용자의 input을 받는 경우가 자주 있습니다.
이때 저는 readLine()을 사용해서 사용자 입력을 받곤 했지만 input의 범위가 커져 시간초과가 나는 경우도 있어 찾아보게 된 내용을 정리해보려고 합니다.
✅ readLine()
공식문서에 따르면 readLine은 한 줄의 끝 또는 EOF(End of File) 까지 입력된 String 값을 받아온다고 합니다.
readLine의 return 값은 Optional이며 이는 EOF에 이미 도달 했을 때 nil을 반환해주기 때문이라고 합니다.
일반적으로 Command Line Tool에서 입력을 받아올 때 사용되지만 return 값이 무조건 String 형태라 다른 형태로 사용하기 위해서는 타입을 변경해줘야합니다.
reaLine의 주요 특징으로는 입력이 문자열로 이루어진다는 것과 개행 문자까지를 문자열로 반환한다는 것 그리고 내부적으로 버퍼링을 사용하여 편하지만 느리다 는 것이 있습니다.
✅ FileHandle.standardInput
FileHandle 클래스는 files, sockets, pipes 그리고 디바이스에 관련된 데이터에 접근할 때 사용되며 standardInput은 데이터를 바이트 단위로 읽는 입출력 기능을 제공하는 FileHandle의 인스턴스입니다.
주요 특징으로는 readDataToEndOfFile() 또는 read(upToCount:) 메서드 등을 사용하여 데이터를 바이트 단위로 읽는다는 것과 버퍼링 없이 OS 수준 스트림에서 직접 읽어 매우 빠르고 대량 데이터 처리에 적합하다는 것이 있습니다.
대신에 문자열 파싱 기능이 없기 때문에 읽은 데이터를 직접 utf-8 String으로 변환하여 사용해야 합니다.
'Algorithm' 카테고리의 다른 글
| Algorithm - 버블 정렬 & 선택 정렬 (0) | 2024.11.19 |
|---|---|
| Algorithm - 단일 연결 리스트(Single Linked List), 이중 연결 리스트(Doubly Linked List) (0) | 2024.11.06 |
| Algorithm - 점근적 표기법(Asymptotic notation) (0) | 2024.10.20 |
- Total
- Today
- Yesterday
- asymptoticnotation
- swift
- coredata
- 스위프트
- opaquetype
- 빅세타표기법
- 개발자코테
- Algorithm
- tuist v4
- kakaomapssdk
- 코어데이터
- Tuist
- iphone
- PHCachImageManager
- reusablelist
- 알고리즘
- Concurrency
- opaque
- BoxedType
- private(set)
- UIViewTransitioningDelegate
- Xcode
- capsulation
- ios
- ViewBuilder
- tipview
- SwiftUI
- boxedprotocol
- 팁킷
- boxedprotocoltype
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 |
