본문 바로가기

ios122

Swift) 백준 1037번 (약수) 요구능력 : 약수에 대해 이해하고 있느냐 코드설명 : 여기서 중요한 점은 진짜 약수가 모두 주어진다는 것이다. 만약 12가 구하려는 수 이면 1, 2, 3, 4, 6, 12가 있는데 조건대로 1과 12는 제외하고보면 2, 3, 4, 6이 있다. 여기서 양쪽 끝에 숫자만 곱하면 구하려는 수가 나온다. 후기 : 약수에 대해서 알고만 있으면 무난한문제 let nCount = Int(readLine()!)! let nArr = readLine()!.split(separator: " ").map{Int($0)!} print("\(nArr.min()! * nArr.max()!)") 2021. 8. 25.
Swift) 백준 4375번 (1)(종료조건 EOF) 요구능력 : EOF를 쓸줄아느냐, 기본적인 수학 코드설명 : 1. 문제에서 별도의 종료조건이 없기 때문에 EOF를 사용한다. 이 때, 스위프트에서는 별도의 EOF가 없기 때문에 while문에서 코드와 같이 받아주면된다. commandLineTool에서도 입력받을 때 ctrl + d를 입력해주면 EOF를 쓸수있다. 2. next에는 1, 11, 111등이 들어갈 것인데, 이게 나누어 떨어지면 n의 배수이다. 3. next를 1, 11, 111, ... 를 만드려고 (next * 10) + 1 을 해준다. 4. 갑자기 next %= Int(n)! 을 왜? 사실, 안해도 답은 나온다. 나도 여기서 많이 헤맸는데, 알아보니 더 큰 수로 넘어가면 Int의 범위를 초과하기 때문에 컴파일에러가 나타나는 것이었다. 범.. 2021. 8. 24.
Swift) 백준 18870번 (좌표압축) 요구능력 : 최대한 시간을 줄여서 코딩할 수 있느냐 코드설명 : 1. 입력 받은 수를 오름차순으로 정렬한 것을 반복하면서 비어있는 키에 값을 넣어준다. 이 때 오름차순 정렬이므로 맨 첫번째 수는 자기보다 작은 수가 하나도 없을 것이다. 그래서 0이고 다음 1 다음 2... 2. dictionary의 value를 굳이 반복문을 쓰지 않아도 한번에 출력할 수 있는 방법이다. 후기 : 시간단축하는게 정말 어려운것같다.. 답을 찾는 코드는 2가지정도 짜봤는데 시간초과때문에 다른 사람것을 보고 이해하고 넘어가기로 했다. 내가 항상 for문을 이용해서 받고 출력했던 것들을 굳이 for문없이 사용하고 출력하는 법을 배웠다. let n = Int(readLine()!)! let arr = readLine()!.spli.. 2021. 8. 24.
Swift) 백준 10814번 (나이순 정렬) 요구능력 : 여러가지 변수를 보고 구조체를 사용할 생각을 하고 정렬을 활용할 줄 아느냐 코드설명 : 1. member구조체를 선언하여 필요한 요소인 name, age, order를 선언 2. member 구조체들을 저장하기위한 memArr배열을 선언 3. memArr배열에 member구조체들을 추가 4. memArr배열을 조건에 맞게 정렬 5. memArr에 저장된 각 배열의 원소의 나이와 이름을 출력 후기 : 딕셔너리와 sort()를 활용할 줄 알면 가벼운 문제 struct member{ //1번 var name: String var age: Int var order: Int } let n = Int(readLine()!)! var memArr: [member] = [] //2번 for i in 0.. 2021. 8. 23.