전체 글 15

백준 1929번: 소수 구하기 - Swift 풀이

오늘의 문제 1929번: 소수 구하기 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. www.acmicpc.net 내 풀이 import Foundation let input = readLine()!.split(separator: " ").map { Int($0)! } var M = input[0] var N = input[1] var arr: [Bool] = Array(repeating: true, count: N+1) arr[0] = false if N >= 1 { arr[1] = false } // 1 1 일 때는 그냥 강제로 0 출력해버림 if M == 1 && N == 1 { print..

Baekjoon 2024.04.17

백준 5397번: 키로거 - Swift 풀이

오늘의 문제 5397번: 키로거 첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한줄로 이루어져 있고, 강산이가 입력한 순서대로 길이가 L인 문자열이 주어진다. (1 ≤ L ≤ 1,000,000) 강산이가 백스페이스를 입 www.acmicpc.net 나의 삽질 과정 1. 처음에는 res 변수를 빈 문자열로 초기화하고 cursor를 res의 인덱스(Int)로 두고 진행했었다. 일 때 cursor를 -1, +1하고 글자일 때는 res를 슬라이싱 해서 cursor를 기준으로 left, right로 나누고 res = left + String(i) + right 뭐 이런 식으로 했었다. 테스트 케이스는 통과했었으나 다른 케이스에서 IndexError가 났는지 제출 시 런타임 에러를 띄웠다. 2. ..

Baekjoon 2024.04.08

백준 4949번: 균형잡힌 세상 - Swift 풀이

오늘의 문제 4949번: 균형잡힌 세상 각 문자열은 마지막 글자를 제외하고 영문 알파벳, 공백, 소괄호("( )"), 대괄호("[ ]")로 이루어져 있으며, 온점(".")으로 끝나고, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마지막에 www.acmicpc.net 이 문제... https://tobeforest.tistory.com/13 이거랑 문제 내용만 다르지 로직은 똑같다. 날먹 하려고 일부러 한 건 아닌데, 요새 내가 푸는 챕터가 자료구조라서 그렇다. 자료구조 챕터 다 풀면 다음 챕터로 넘어갈 예정. (자료구조가 챕터 1이다.) 그래도 저거 푼 지 며칠 지났는데 친구랑 고민했던 게 인상 깊어서 그런가 로직이 바로 생각나서 바로 풀었다. 내 풀이 import Foundation va..

Baekjoon 2024.03.25

백준 1021번: 회전하는 큐 - Swift 풀이

오늘의 문제 1021번: 회전하는 큐 첫째 줄에 큐의 크기 N과 뽑아내려고 하는 수의 개수 M이 주어진다. N은 50보다 작거나 같은 자연수이고, M은 N보다 작거나 같은 자연수이다. 둘째 줄에는 지민이가 뽑아내려고 하는 수의 위치가 www.acmicpc.net 문제 제목 보고 순환 큐로 풀 생각에 front, rear 변수 두고 풀다가 괜히 뺑뺑 돌아 결국 제자리로 오게 된 사연... 실버 3인데 며칠 동안 풀었다...^^ 태초부터 다시 시작했더니 금새 풀렸다. 내 풀이 import Foundation let input = readLine()!.split(separator: " ").map { Int($0)! } let N = input[0] var count = 0 var numbers = readL..

Baekjoon 2024.03.23

백준 3986번: 좋은 단어 - Swift 풀이

오늘의 문제 3986번: 좋은 단어 이번 계절학기에 심리학 개론을 수강 중인 평석이는 오늘 자정까지 보고서를 제출해야 한다. 보고서 작성이 너무 지루했던 평석이는 노트북에 엎드려서 꾸벅꾸벅 졸다가 제출 마감 1시간 전에 www.acmicpc.net 요약) 단어 위로 아치형 곡선을 그어 같은 글자끼리(A는 A끼리, B는 B끼리) 쌍을 짓기로 함. 선끼리 교차하지 않으면서 각 글자를 정확히 한 개의 다른 위치에 있는 같은 글자와 짝 지을수 있다면, 그 단어는 '좋은 단어'. 입력된 단어들 중에 '좋은 단어'가 몇 개 있는지 세서 출력하면 됨. 내 풀이 import Foundation /// 단어의 수 입력 let N = Int(readLine()!)! /// 좋은 단어의 개수 var result = 0 //..

Baekjoon 2024.03.16

백준 10845번: 큐 - Swift 풀이

오늘의 문제 10845번: 큐 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 문제 요약 맨 처음에 입력으로 명령어 개수가 주어지고, 명령대로 수행하는 프로그램 작성 push X: 정수 X를 큐에 추가. pop: 큐에서 가장 앞에 있는 정수를 빼고, 그 수를 출력. 큐가 빈 경우에는 -1을 출력. size: 큐에 들어있는 정수의 개수 출력. empty: 큐가 비어있으면 1, 아니면 0을 출력. front: 큐의 가장 앞에 있는 정수를 출력. 큐가 빈 경우에는 -1을 출력. back: 큐의 가장 뒤에 있는 정수를 ..

Baekjoon 2024.03.15

백준 1874번: 스택 수열 - Swift 풀이

오랜만에 백준 푸니까 다 까먹은 것 같아서 자료구조부터 다시 하는 중이다... 하.하 오늘의 문제 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 해야 하는지 +, -로 나타내라. 단, push 할 때는 오름차순을 지..

Baekjoon 2024.03.13

[Swift] Swift ScrollView 스크롤뷰 코드로 구현하기 (No storyboard)

오늘은 스토리보드 없이 코드로만(programmatically) 스크롤뷰를 구현하는 방법에 대해 정리해 보겠다. 1. ScrollView 생성. lazy var scrollView: UIScrollView = { let scroll = UIScrollView() scroll.translatesAutoresizingMaskIntoConstraints = false return scroll }() 2. inner view 생성. -> 스크롤뷰 안에 UIView가 하나 있어야 내용이 보이고 제대로 작동한다. 필수적임. lazy var innerView: UIView = { let view = UIView() // 상황에 따라 필요한 속성 부여. view.backgroundColor = .black view.t..

Swift 2022.04.22

[Swift] Swift navigation bar custom 하는 방법

iOS 개발에는 두 가지 방법이 있는데, 1. 스토리보드로 구현 2. 스토리보드 없이 코드로 구현 (programmatically) 모두 정리해 보도록 하겠다. 1. 스토리보드로 navigation bar custom 하기 자 우선 Xcode에서 새 프로젝트를 만들고 navigation bar를 만들 view controller를 선택한다. 그리고 오른쪽 아래에 보면 이렇게 네모 모양으로 화살표 아이콘이 있는데(이게 embed in임) 여기서 Navigation Controller를 눌러준다. 그럼 왼쪽에 컨트롤러가 생기는데 이건 Container View Controller라고 해서 이거 자체가 뭘 display 해주고 하는 건 아니다. 말 그대로 navigation을 도와주는 친구고 우리가 일단 얘를..

Swift 2022.04.20

[Git] 내가 자꾸 까먹어서 적어놓는 git 명령어 (계속 추가될 예정)

1. 커밋 이력 조회. git log --oneline 2. 돌아가고 싶은 커밋의 번호를 복사해서 아래의 명령어를 실행 -> head 위치를 변경. 해당 커밋 이후의 커밋들은 삭제됨. git reset --hard "돌아가고 싶은 커밋 번호" 3. 깃허브에 push해서 반영. git push -f origin main 이건 Xcode에서 assets 파일 이름 수정하고 나서 자주 쓰는 명령어... 처음에 initial commit한 이후로 assets의 이미지 파일 이름이 마음에 안 들어서 변경할 때가 있는데, 이게 git add . 했을 때 반영이 안 되더라구요...? (git status로 조회해봐도 해당 파일이 변경된 것으로 인식이 안 됨.) 그래서 깃허브가 이 변화를 인식하게 하려면 사실 파일명이..

Git 2022.04.19