
10799번: 쇠막대기 여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저 www.acmicpc.net 문제 요약 붙어있는 열린 괄호와 닫힌 괄호 " () "를 레이저, 나머지 열린 괄호와 닫힌 괄호를 쇠막대라 생각하자. 레이저로 쇠막대기를 잘라서 나오는 조각의 총개수를 구하라. 풀이 이전에 풀었던 BOJ 9012번 괄호를 참고했다. 입력받은 문자열을 반복문으로 확인한다. 열린 괄호는 스택에 넣고 닫힌 괄호를 만날 때마다 pop 한다. 닫힌 괄호가 나왔을 때는 이전 문자가 열린 괄호라면 레이저이다. 스택에 존재하는 열린 괄호(= 쇠막대 개수)를 자른다고 스택의 원소 개수만큼..

17413번: 단어 뒤집기 2 문자열 S가 주어졌을 때, 이 문자열에서 단어만 뒤집으려고 한다. 먼저, 문자열 S는 아래와과 같은 규칙을 지킨다. 알파벳 소문자('a'-'z'), 숫자('0'-'9'), 공백(' '), 특수 문자('')로만 이루어져 www.acmicpc.net 문제 요약 문자열 s에서 tag를 제외한 단어를 뒤집은 문자열을 출력하라. 풀이 1 - flag 변수 사용 변수 flag로 문자 tag를 체크해 문자 char이 tag일 경우 result에 넣어주고 tag가 아닐 경우에는 stack에 넣어준다. "

10866번: 덱 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 문제 요약 덱 (Deque) 만들기 풀이 import Foundation let N = Int(readLine()!)! var deque: [Int] = [] func push_front(_ x: Int) { deque.insert(x, at: 0) } func push_back(_ x: Int) { deque.append(x) } func pop_front() -> Int { return deque.isEmpty ? -1 : deque.remov..

1158번: 요세푸스 문제 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) www.acmicpc.net 문제 요약 N 명의 사람이 원을 이루며 앉아있고 K번째 사람을 제거하는 과정을 반복. 제거되는 사람의 순서를 출력하라. 풀이 1 1...N 이 들어있는 arr 배열에서 K 번째 원소를 제거해주는 과정을 반복한다. import Foundation let input = readLine()!.split(separator: " ").map{ Int(String($0))! } var N = input[0] let K = input[1] var arr = Array(1...N) var result = [Int]() var index = K - 1 while !(a..

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...
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..
- Total
- Today
- Yesterday
- 1406 에디터
- sheetPresentationController
- BOJ 10799
- 2023 회고
- BOJ 17413
- BOJ 10808
- BOJ 10820
- Algorithm
- UICollectionView Error
- BOJ 10866
- 요시푸스
- bottom sheet
- BOJ 1935
- ios
- Custom Detent
- Stack
- UICollectionView banner
- NaverMaps
- Card CollectionVIew
- BOJ 10809
- autolayout
- swift
- crud
- github
- Carousel Effect
- Gradient View
- CAGradientLayer
- Sheet Height
- git
- BOJ 17298
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |