
10820번: 문자열 분석 문자열 N개가 주어진다. 이때, 문자열에 포함되어 있는 소문자, 대문자, 숫자, 공백의 개수를 구하는 프로그램을 작성하시오. 각 문자열은 알파벳 소문자, 대문자, 숫자, 공백으로만 이루어져 있 www.acmicpc.net 풀이 while let input = readLine() { var result = [0, 0, 0, 0] for char in input { let ascii = char.asciiValue! if ascii >= 65 && ascii = 97 && ascii = 48 && ascii

10809번: 알파벳 찾기 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출 www.acmicpc.net 풀이 import Foundation let S = Array(readLine()!) var result: [Int] = Array(repeating: -1, count: 26) for char in S { result[Int(char.asciiValue!) - 97] = S.firstIndex(of: char)! } print(result.map{ String($0) }.joined(separator: " "))

10808번: 알파벳 개수 단어에 포함되어 있는 a의 개수, b의 개수, …, z의 개수를 공백으로 구분해서 출력한다. www.acmicpc.net 문제 요약 문자열(S)의 각 문자 개수를 출력 풀이 문자의 아스키코드를 인덱스 값으로 이용해 카운팅 한다. import Foundation let input = readLine()! var result: [Int] = Array(repeating: 0, count: 26) for char in input { result[Int(char.asciiValue! - 97)] += 1 } print(result.map{ String($0) }.joined(separator: " "))

17298번: 오큰수 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에 수열 A의 원소 A1, A2, ..., AN (1 ≤ Ai ≤ 1,000,000)이 주어진다. www.acmicpc.net 문제 요약 크기가 N인 수열이 A가 있을 때 A[i]의 오른쪽에 있으면서 A[i] 보다 큰 수 중에 가장 왼쪽에 있는 수를 오큰수라 한다. 수열 A의 모든 원소의 오큰수를 순서대로 출력하자. 단, 오큰수가 없는 경우에는 -1을 출력하자. 풀이 이중반복문으로 쉽게 할 수 있지만 당연하게도 시간 초과이다. 모든 원소가 -1 인 result 배열에 각 인덱스의 오큰수를 넣어주자. stack에는 오큰수를 찾지 못한 인덱스 번호를 넣어준다. 만약 스택의 가장 윗 원소(= 인덱스)에..

1935번: 후위 표기식2 첫째 줄에 피연산자의 개수(1 ≤ N ≤ 26) 가 주어진다. 그리고 둘째 줄에는 후위 표기식이 주어진다. (여기서 피연산자는 A~Z의 영대문자이며, A부터 순서대로 N개의 영대문자만이 사용되며, 길이 www.acmicpc.net 문제 요약 후위 표기식은 식의 앞에서부터 피연산자면 스택에 넣고 연산자면 스택에 들어있던 피연산자를 꺼내서 연산하는 것. 후위 표기식의 계산 결과를 소수점 둘째 자리까지 출력하라 풀이 피연산자가 A... Z로 주어지지만 결국에는 Double형이다. numbers에 입력 받은 숫자들이 들어가 있는데 A = numbers[0] , B = numbers[1] ... 이런 식으로 바꿔 주어야 한다. A...Z를 (아스키 코드 - 65)로 바꿔 index 번호..

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