Today I Learned 45

백준 swift - 기본 수학2 (1~11단계)

1978 소수 찾기, 2581 소수, 11653 소인수분해, 1929 소수 구하기, 4948 베르트랑 공준, 9020 골드바흐의 추측, 1085 직사각형에서 탈출, 3009 네 번째 점, 4153 직각삼각형, 3053 택시 기하학, 1002 터렛 1978 소수 찾기 // 1978 소수 찾기 -1, 8ms, 62232KB let caseNum = Int(readLine()!)! let input = readLine()!.split(separator: " ").map{Int(String($0))!} var num = 1000 var numArray = Array(0...1001) var count = 0 for i in 0..

Today I Learned 2021.12.05

백준 swift - 문자열

11654 아스키코드, 11720 숫자의 합, 10809 알파벳 찾기, 2675 문자열 반복, 1157 단어 공부, 1152 단어의 개수, 2908 상수, 5622 다이얼, 2941 크로아티아 알파벳, 1316 그룹 단어 체커 11654 아스키코드 // 11654 아스키 코드 var input = readLine()! print(Character(input).asciiValue!) // 11654 아스키 코드 var input = Character(readLine()!) print(input.asciiValue!) 두 가지 경우로 작성해봤는데, 워낙 코드가 짧아서인지 시간이나 메모리에서 아무런 차이가 없었다. 11720 숫자의 합 //11720 숫자의 합 var count = Int(readLine()!..

Today I Learned 2021.10.21

20211006 - 백준 swift - 함수

4673 셀프 넘버, 1065 한수 15596 정수N개의 합 같은 경우에는 언어제한이 있어서 도전해보지 못했다.. 4673 셀프 넘버 // 4673 셀프 넘버 func generate (_ inputNum:Int) -> Int { var sum = inputNum var num = inputNum while num != 0 { sum += num % 10 num /= 10 } return sum } var result: Set = [] for i in 1...10000 { result.insert(generate(i)) } for i in 1...10000 { if !result.contains(i) { print(i) } } 함수 d를 정의하라고 했는데 그냥 generate 이름으로 만들어버렸음 특별히..

Today I Learned 2021.10.06

20210930 백준 swift - 1차원 배열

1~7단계 (10818, 2562, 2577, 3052, 1546, 8958, 4344) 10818 최소, 최대 let caseNum = Int(readLine()!)! let num = readLine()!.split(separator: " ").map{Int(String($0))!} print(num.min()!, num.max()!) arrayName.min() & arrayName.max() 사용해서 해결 문제는 시간초과였는데, 스위프트로 백준 알고리즘을 풀 때 시간초과 문제가 많이 발생한다고 한다. https://velog.io/@ryan-son/Swift-10818-%EC%B5%9C%EC%86%8C-%EC%B5%9C%EB%8C%80-%EB%B0%B1%EC%A4%80-B3 글을 참조했다. spl..

Today I Learned 2021.09.30

20210831 백준 swift - while문

1~3단계 10952, 10951, 1110 문제풀이 10952 A+B -5 var escape : Bool = true while escape != false { var input = readLine()!.split(separator: " ").map{Int($0)!} if input != [0, 0] { print(input[0]+input[1]) escape = true } else { escape = false } } 이렇게 풀었는데.. 코드를 좀 더 간결하게 작성하는 방법이 있었다. while true { let number = readLine()!.split(separator: " ").map { Int($0)! } if number[0] + number[1] == 0 { break } pri..

Today I Learned 2021.09.01

20210830 백준 swift - for문 -2

10~11 (2439, 10871) 문제 2439 별찍기 -2 let caseNum = Int(readLine()!)! var addStar:[String] = [] for i in 1...caseNum { var addSpace:[String] = [] var desNum = caseNum while desNum > i { addSpace.append(" ") desNum -= 1 } addStar.append("*") let result = addSpace.joined(separator: "") + addStar.joined(separator: "") print(result) } 이렇게 풀었는데.. 훨씬 간결하게 작성한 사람이 있었다. let n: Int = Int(readLine()!)! for i..

Today I Learned 2021.08.31

20210814~20210816 백준 문제풀이 swift (사칙연산 곱셈, if문)

사칙연산 곱셈 (2588), if문 (1330, 9498, 2753, 14681, 2884) 문제풀이 먼저 곱셈 문제에서, 처음에 런타임 오류가 났는데 readLine으로 입력받을 때, 두 줄에 거쳐 입력을 받았는데 어떻게 두 줄을 입력받는지 몰라서였다. 복잡하게 생각할 것 없이 readLine을 두 번 사용하면 되는 문제였다. let num1 = Int(readLine()!)! let input2 = readLine()! let num2 = Int(input2)! let num2Arr = input2.map {Int(String($0))!} let num3 = num1 * num2Arr[2] let num4 = num1 * num2Arr[1] let num5 = num1 * num2Arr[0] let ..

Today I Learned 2021.08.17