본문 바로가기

스위프트4

[Swift][BruteForce] 백준 14888번 (연산자 끼워넣기) 요구능력 : 백트래킹과 문자열 코드설명 : 연산자를 배열에 다 넣어준다. var temp = [Character]() var operArr = operandArr for i in 0..= 1 { if i == 0{ temp.append("+") operArr[i] -= 1 }else if i == 1{ temp.append("-") operArr[i] -= 1 }else if i == 2{ temp.append("*") operArr[i] -= 1 }else if i == 3{ temp.append("/") operArr[i] -= 1 } } } 연산자를 백트래킹 하면서 경우의수를 모두 계산해준다. func dfs(_ depth: Int){ var p = 1 var result = arr[0] if de.. 2021. 12. 24.
[Swift][BFS] 백준 13549번 (숨바꼭질3) 요구능력 : BFS에 대한 이해 코드설명 : 이전단계 문제인 숨바꼭질을 풀고오면 수월하게 풀리는문제이다. 먼저 풀고오는걸 권장하는게아닌 먼저풀고오는게 맞는거같다. 큐에 삽입한다는 말은 움직인다는 말인데, 움직이면 시간계산을 해줘야하므로 움직이는것과 시간계산을 함께 넣어서 큐를 튜플배열로 사용하였다. 순간이동이라는 조건이 추가되서 1초가아닌 0초를 더해야하는것을 제외하고는 숨바꼭질과 문제가 똑같다. queue에서 튜플의 첫번째 요소는 현재 위치, 두번째 요소는 걸리는 시간이다. 후기 : BFS관련 복잡한 문제들을 몇번봐서 이렇게 간단한건 어느정도 풀만한 수준이 된거같다. let nk = readLine()!.split(separator: " ").map{Int(String($0))!} let n = nk[.. 2021. 11. 12.
Swift) 백준 4153번 (직각삼각형) 요구능력 : 피타고라스의 정리를 아느냐 코드설명 : 입력받은 수 중에 가장 큰 수가 빗면이다. 그럼 가장큰수를 제외하고 나머지 가로, 세로변의 제곱을 더해서 누적해줬다. 그리고 마지막에는 피타고라스의 정리 빗면^2 == 가로^2 + 세로^2 를 이용해서 맞으면 right 틀리면 wrong을 출력했다. 후기 : 한번 제출하고 실패한 다음에 입력숫자 순서는 무작위라는 것을 알게되었고, if문을 많이쓰면 머리쓸필요없지만 쓰기싫어서 while문으로 처리했다. while true { var jegop = 0 var i = 0 let arr = readLine()!.split(separator: " ").map{ Int($0)! } if arr == [0, 0, 0] { break } while i < arr.co.. 2021. 8. 15.
Swift) 백준 3009번 (네 번째 점) 요구능력 : 평행한 점을 찾기위한 규칙을 찾을 수 있느냐 코드설명 : 평행하려면 동일한 x절편과 y절편이 2번 나와야 된다. for문을 이용해서 없는 x절편과 y절편을 찾아서 각각 새로운 배열에 삽입하고 출력했다. 후기 : 쉬운문제인것같다. let arr1 = readLine()!.split(separator: " ").map{Int($0)!} let arr2 = readLine()!.split(separator: " ").map{Int($0)!} let arr3 = readLine()!.split(separator: " ").map{Int($0)!} var arr4:[Int] = [] var temp = 0 for i in 0.. 2021. 8. 15.