10845번: 큐 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 문제 요약 큐(Queue)를 만들어 보자. 풀이 import Foundation var queue: [Int] = [] func push(_ x: Int) { queue.append(x) } func pop() -> Int { if queue.isEmpty { return -1 } else { return queue.removeFirst() } } func size() -> Int { return queue.count } func empty() -..
1406번: 에디터 첫째 줄에는 초기에 편집기에 입력되어 있는 문자열이 주어진다. 이 문자열은 길이가 N이고, 영어 소문자로만 이루어져 있으며, 길이는 100,000을 넘지 않는다. 둘째 줄에는 입력할 명령어의 개수 www.acmicpc.net 문제 요약 커서를 기준으로 하는 편집기를 만들자. 시간 초과 1 import Foundation var arr = Array(readLine()!) var M = Int(readLine()!)! var index = arr.count func P(_ x: Character) { arr.insert(x, at: index) index += 1 } func L() { if index > 0 { index -= 1 } } func D() { if index < arr...
1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net 문제 요약 스택에 1부터 n까지의 수를 push 함과 동시에 pop 연산을 적절히 사용해 원하는 수열을 만드는 문제 push는 +로 pop은 -로 print하자. 풀이 수열을 이루는 수(=input)를 입력할때 그 수는 스택에 존재해야 한다. input을 입력 했을때 1부터 input까지 스택에 push 한다. 스택의 마지막 수가 input과 같을 경우에 pop 연산을 수행한다. ..
9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net 문제 요약 입력된 문자열이 올바른 괄호 문자열(VPS)인지 확인하는 문제 → 괄호가 제대로 닫혀 있는지 확인 풀이 스택(Stack) 사용 "(" 이 나오면 스택에 추가 → append() ")"이라면 스택에서 제거 → popLast() popLast를 했는데 nil 값이 반환되면 ( = 스택이 비었다면) isEmpty 변수를 true로 바꾸고 break → ")" 에 해당하는 "("가 없음 반복문이 끝나고 isEmpty가 true ..
9093번: 단어 뒤집기 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문장이 하나 주어진다. 단어의 길이는 최대 20, 문장의 길이는 최대 1000이다. 단어와 단어 사이에는 www.acmicpc.net 입력받은 문장의 각 단어를 뒤집어 출력해야 함 → reversed() 각 단어를 reversed 메서드를 이용해 뒤집고 빈 문자열 result에 추가 단어 사이에 공백 추가할것 // // main.swift // Algorithm Swift // BaekJoon // 9093 - 단어 뒤집기 import Foundation let N = Int(readLine()!)! for _ in 0...(N-1) { let input = readLine()!.spl..
10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 배열을 만든 후 push, pop, count, isEmpty, last 메서드를 이용해 스택의 기능을 구현 후 switch case 사용해 완성 // // main.swift // Algorithm Swift // BackJoon // 10826 - 스택 import Foundation let N = Int(readLine()!)! var stack: [Int] = [] for _ in 0...(N-1) { let input = readLine..
알고리즘 공부 전에 필요한 기초적인 문법 정리 1. Swift) 기초 문법 1 - 입력, 분할, 배열, map(), filter(), reduce() ReadLine() // 입력 // ReadLine() let input = readLine() // return Optional String print(input!) print(type(of: input)) //> Optional let input2 = readLine() if let input2 = input2 { // optional binding (if let) print(input2) print(type(of: input2)) //> String } let input3 = Int(readLine()!)! // 정수 입력 print(input3) p..
저번 글에서 공부했던 DatePicker를 이용해 Timer를 만들어 보자. StoryBoard와 ViewController는 다음과 같다. DatePicker의 모드는 .countDownTimer로 설정한다. datePicker.datePickerMode = .countDownTimer datePicker Action을 추가하자. Event가 Value Changed라고 되어있으므로 datePicker의 값이 변경될 때마다 Action이 호출된다. datePicker의 값이 변경될 때마다 선택한 countDownDuration(= 카운트 다운 지속시간)이 얼마인지 출력해보았다. Timer() 클래스를 이용해 countDownDuration만큼 Timer가 실행되도록 만들어보자. ViewControlle..
- Total
- Today
- Yesterday
- BOJ 10866
- sheetPresentationController
- BOJ 17298
- 요시푸스
- 1406 에디터
- Carousel Effect
- BOJ 10820
- BOJ 10808
- Stack
- swift
- NaverMaps
- github
- BOJ 17413
- BOJ 1935
- autolayout
- CAGradientLayer
- Gradient View
- UICollectionView banner
- BOJ 10809
- Algorithm
- Card CollectionVIew
- git
- Custom Detent
- bottom sheet
- Sheet Height
- UICollectionView Error
- BOJ 10799
- 2023 회고
- crud
- ios
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |