Swift 코딩테스트(37)
-
[Swift 코테] 백준 2775 부녀회장이 될테야
재귀함수로 문제를 풀었다. 1. 분홍색 = 주황색1 + 주황색 2 + 파랑색 2. 주황색1 + 주황색 2. 초록색 3. 분홍색 = 초록색 + 파랑색 f(f, r) = f(f, r - 1) + f(f - 1, r) 4. 재귀함수의 endpoint는 (0층 r호) or (f층 1호) (0층 r호)는 r의 값을 가지고 (f층 1호)는 1의 값을 가진다. 코드 let input = Int(readLine()!)! for i in 0.. Int { if r == 1{ return 1 } if f == 0 { return r } return howmany(f: f - 1, r: r) + howmany(f: f, r: r - 1) } 박박대가리가 된 나를 실감 중... 넘 충격이어서 포스팅합니다.. 백준 잡아먹자구,..
2022.04.15 -
[Swift 코테] 백준 1316 그룹 단어 체커
배열과 집합의 인덱스를 활용해 문제를 풀었습니다. 1. 배열의 중복 요소를 제거한 집합을 만들고 2. 집합의 요소를 기준으로 배열에서 해당 요소의 처음, 마지막 인덱스를 구조체에 저장합니다. 3. 구조체를 처음 인덱스를 기준으로 정렬한 후 4. 해당 요소의 마지막 인덱스와 다음 요소의 처음 인덱스를 비교합니다. 5. lastIndex firstIndex 라면 return false 코드 import Foundation struct order{ var start: Int var end: Int } var num = Int(readLine()!)! var count = 0 for i in 0.. Bool{ var arr = Array..
2022.03.17 -
[Swift 코테] 백준 2941 크로아티아 알파벳
하루 지나서 푸니까 생각보다 너무 간단했던 문제였다. 복잡하게 문자열로 바꿔서 풀지 말고 String 함수를 많이 알아야 겠다고 느낀 문제였다. 아래 contains와 replaceOccurrences함수가 메인이다. line.contains("지금 이거를") line = line.replaceOccurrences(of: "지금 이거를", with: "이걸로 바꾸자") 1. 이전 운영체제 버전의 크로아티아 알파벳의 유무를 String 함수인 contains로 확인하고 2. 있다면 다른 Character 하나로 변경한다 ex) "0" - 숫자는 입력되지 않기 때문 3. 모든 String을 살펴봐야 하기 때문에 else if 문이 아닌 if문만 사용 4. 바뀐 String을 Array로 변경하고, Array..
2022.03.17 -
[Swift 코테] 백준 11654 아스키 코드
코드 let input = readLine()! print((Character(input).asciiValue)!) //A = 97 //a = 65
2022.03.14 -
[Swift 코테 기초] String to Character
var test = readLine()!.map({ (value) in Character(extendedGraphemeClusterLiteral: value) }) //input = "oxoxoxoxo" //test = ["o", "x", "o", "x", "o", "x", "o", "x", "o"]
2022.03.10 -
[Swift 코테] 백준 10818 최소, 최대
개껌처럼 보이지만 개껌 씹다가 이에 살짝 금간거 같다. 1. import Foundation -> components(separatedBy: " ") 대신 아무것도 import 하지 말고 .split(separator: " ") 사용하기 2. sorted()와 min(), max()는 의외로 차이가없었습니다. sorted()는 시간 복잡도가 O(n log n) / min(), max()는 O(n) 여하튼 코드는 다음과 같습니다. let input = Int(readLine()!)! var arr = readLine()!.split(separator: " ").map({ (value) in Int(String(value))! }) print("\(arr.min()!) \(arr.max()!)")
2022.03.08 -
[Swift 코테] 백준 10951 A + B - 4
10952와 비슷한 문제인 줄 알았더니 endpoint가 따로 주어지지 않는다. 이경우 input이 계속 입력되는지 마는지를 while문에서 어떻게 확인할 수 있는지를 찾아야 했다. while문 뒤의 조건에는 Bool 타입만 와야 하기 때문에 입력인 readLine()이 true인지 false인지를 조건으로 주어야 한다. while let input = readLine() { var line = input.split(separator: " ") print(Int(line[0])! + Int(line[1])!) }
2022.03.07 -
[Swift 코테] 백준 2741 N 찍기
단계별 for문 풀기의 바로 앞 문제가 파일 입출력을 요구하는 시간제한이 있었기 때문에 이번 문제도 그런게 있는게 아닌가 고민했다. 그냥 for문과 print로도 통과가 가능했다. var number = Int(readLine()!)! for i in 1.. string안에 넣어서 한 번에 출력하기 2. for i in 0..
2022.02.11 -
[Swift 코테] 백준 15552 빠른 A+B
다른 언어의 경우에는 이글에 설명되어 있다 -> import Foundation final class FileIO { private let buffer:[UInt8] private var index: Int = 0 init(fileHandle: FileHandle = FileHandle.standardInput) { buffer = Array(try! fileHandle.readToEnd()!)+[UInt8(0)] // 인덱스 범위 넘어가는 것 방지 } @inline(__always) private func read() -> UInt8 { defer { index += 1 } return buffer[index] } @inline(__always) func readInt() -> Int { var sum..
2022.02.11 -
[Swift 코테 기초] 입출력
//공부 기록용 포스팅입니다. 틀린 부분이 있을 경우 댓글로 알려주시면 감사합니다! 😎 많이 참고했습니다! 감사합니다. https://lxxyeon.tistory.com/66 [iOS] 알고리즘, 코딩테스트 준비하기 - Command Line Tool, LeadLine, Split, Components, map, print 사용하기 Swift로 코딩 테스트 준비, 세팅하기 Swift 입력하기 Swift로 코테를 준비하려고 하니! 어떻게 입력을 받아서 처리하지...? Swift로 입력을 받기 위해선 project 생성시, playground, app이 아닌 새로운 탬플릿 lxxyeon.tistory.com https://twih1203.medium.com/swift-알고리즘에-필요한-swift-basic-..
2022.02.10 -
[Swift 코테] 백준 10717 고양이
설명 문자열의 특수문자는 #""#으로 처리할 수 있다. 3개의 따움표는 여러줄의 String을 처리하기 위함이다. 코드 import Foundation var cat = #""" \ /\ ) ( ') ( / ) \(__)| """# print(cat) 결과 \ /\ ) ( ') ( / ) \(__)| Program ended with exit code: 0
2022.02.10 -
[Swift 코딩 테스트]
1. Xcode > Create a new Xcode project > macOS > Command Line Tool 2. 언어는 Swift 선택 3. 일반 플젝 실행하듯이 cmd + R 단축키로 동작합니다. swift 코테 화이팅해서 돈많벌 합시다~!
2022.02.10