백준177 Swift) 백준 2798번 (블랙잭) 요구능력 : 경우의수를 전부따지는 브루트포스 알고리즘에 대해 알고있느냐 코드설명 : 입력받은 n개의 수를 모두 더해보면서 m을 넘지않고, 현재 더한 3개의 수가 이전에 구한 sum보다 크다면, 이전에 구한 sum보다 m의 값에 가깝다는 의미이므로 이 때, sum변수에 넣도록 하였다. 후기 : 브루트포스라는 이름이 어려운 알고리즘인줄 알았는데 그냥 단순한 모든경우의수를 따져보는 알고리즘이었다.. let arr = readLine()!.split(separator: " ").map{ Int($0)! } let n = arr[0] let m = arr[1] var suArr = readLine()!.split(separator: " ").map{Int($0)!} var sum = 0 for i in 0.. 2021. 8. 18. Swift) 백준 11729번 (하노이 탑) 요구능력 : 재귀함수를 응용할 수 있느냐 코드설명 : 우선, 몇번 왔다갔다했는지 봐야되는데 그럼 count같은 변수를 넣어서 세봤자 소용이 없다. 규칙을 찾아보면 (2의 n승) -1을 하면 이동횟수가 나오게 된다. hanoi 함수의 인자 n은 우리가 입력받는 수, start는 첫번째 장대, mid는 두번째 장대, end는 세번째 장대이다. 첫번째 하노이 함수는 n-1 개의 원판을 2번째 장대로 옮기는것 두번째 하노이 함수는 남은 1개의 맨 마지막 원판(n이 3이면 3짜리원판)을 3번째 장대로 옮기는것 세번째 하노이 함수는 2번째 장대에 놓은 n-1개의 원판을 3번째 장대로 옮기는것 자세한건 저도 완벽하게 이해 못했기 때문에 디버깅보고 재귀함수라도 이해하고 가세용..(악필 이해 좀 해주세요ㅎ..) 후기 :.. 2021. 8. 17. Swift) 백준 1002번 (터렛) 요구능력 : 원의 성질에 대해 알고 있느냐 코드설명 : 원의 내접, 외접, 접하지않는것을 이용하여 조건을 만들었다. 변수 r의 경우 두 원의 거리를 구한것이다.(중심을 기준) 후기 : 솔직히 원의 성질알아도 처음 문제보고 딱 생각해내는 사람이 얼마나 있겟느냐마는... 원으로 접근하면 그닥 어려운 문제는 아닌것같다. 원으로 접근할 수 있는 근거를 들어보자면 각각 두개의 좌표와 반지름을 주고, 두 좌표에서 주어진 거리만큼 떨어져 있는 위치에 몇개가 있을 수 있는지를 찾아야된다는 것이다. let T = Int(readLine()!)! for _ in 1...T { let arr = readLine()!.split(separator: " ").map{ Int($0)! } var r1 = arr[2] var r2.. 2021. 8. 16. 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. 이전 1 ··· 36 37 38 39 40 41 42 ··· 45 다음