<leetCode> 9. Palindrome Number 많이 해본 문젠데, 쉽긴했다. 근데 내가 한 방법 말고도 있나 있으면 신기할듯 class Solution { func isPalindrome(_ x: Int) -> Bool { let arr = Array(String(x)) let count = arr.count for (idx, val) in arr.enumerated() { let st = idx let dt = count - st - 1 guard st 알고리즘 문제 풀기 2021.01.16
<leetCode> 8. String to Integer (atoi) 음 뻘짓을 너무 많이했는데, 그냥 문제가 안내하는 단계로만 하면 풀리는데, 혼자 그냥 만들해봄... 내가 만들면 왜케 이상하지 class Solution { let max = 1 알고리즘 문제 풀기 2021.01.15
<leetCode> 7. Reverse Integer 푸는데 오래걸렸다. swift랑 안친해서 그런거 같다. class Solution { func reverse(_ x: Int) -> Int { var str = String(x) var arr = Array(str) var y = x let max = 1 알고리즘 문제 풀기 2021.01.08
<릿코드> 6. ZigZag Conversion class Solution { func convert(_ s: String, _ numRows: Int) -> String { var arr = [[Character?]](repeating: Array(repeating: nil, count: 1001), count: 1001) let str = Array(s) var row = 0 var col = 0 var phase: Phase = .down for ch in str { if row == 0 { phase = .down } else if row == numRows - 1 { phase = .up } arr[row][col] = ch if phase == .down { row += 1 } else { row -= 1 col += 1 } } var st.. 알고리즘 문제 풀기 2020.12.24
<릿코드> 5. Longest Palindromic Substring 거의뭐 될때까지 냈는데 ; 알고리즘 상 단축을 못시키겠어서 가장 큰거 부터 찾으면 그만 두게하고, 캐쉬를 사용하긴 했는데 (효용이 있는건지;) 가장 큰거부터 찾으니까 단축이 잘되긴했다. 근데 아래 답도 시간 순위 너무 낮고, 2번 제출해보니까 시간 다르길래 3번째 내니까 겨우됐음. 좋은 답은 아닌듯... class Solution { var cache = [[Bool]](repeating: Array(repeating: false, count: 1001), count: 1001) var maxLength = 0 var maxStr: String? func longestPalindrome(_ s: String) -> String { let strArray = Array(s) for k in 0.. Bool.. 알고리즘 문제 풀기 2020.12.18
<leetCode> 3. Longest Substring Without Repeating Characters class Solution { var dic: [Character: Int] = [:] var length = 0 var maxLength = 0 func lengthOfLongestSubstring(_ s: String) -> Int { var st = 0 var dt = 0 for (dt, dtChar) in s.enumerated() { if let prevIndex = dic[dtChar], st 0 { maxLength = maxLength < len ? len : maxLength } } //print("\(dic)") return maxLength } } 알고리즘 문제 풀기 2020.12.15
<프로그래머스> [카카오 인턴 2020] 수식 최대화 스위프트로 구현한 코드이다. 고민했던 점은 이걸 완전탐색으로 하는 수 밖에 없나 고민했었다. 근데 수식도 100자리 이하고, 연산 우선순위 바뀌는 경우도 12가지라 시간 복잡도를 계산하면 1초안에 들어와서 완탐을 목적으로 낸 문제가 맞다 생각했다. (다른 효율적인 방법이 있다면 댓글좀 ㅠㅠ) 또 고민의 과정은, 문자열을 어떻게 리스트로 파싱할지, parse는 안된다는 결론이 났다. +-*/ 네가지로 분할해야 되서, 그래서 리스트로 순회하면서 숫자랑 연산기호를 따로 읽고 저장하는 식으로 했다. 이제 연산을 해야되는데, 일반적으로 스택을 사용한 연산을 하는걸 알고 있다. 그런데 오래되서 스택으로 하는 방법을 아무리 생각해도 안나더라.,... 쉬운문제 부터 다시 해봐야 겠다. 그래서 스택을 사용하지 않고 리스.. 알고리즘 문제 풀기 2020.09.19
[알고리즘 개념] a* 알고리즘 대표적인 길찾기 알고리즘인데, 학교에서 가르쳐주시긴 했지만... 안들어서 이제라도 알아보려 합니다.... [http://www.gisdeveloper.co.kr/?p=3897] 일단 이거 읽는중임 음 휴리스틱 함수만 적절하게 구하면 효율적일거 같은데, 즉 의존도가 높음. 우선순위 큐를 사용하는 것부터가, 휴리스틱을 사용한다는것을만 빼면 길찾기 알고리즘은 어느정도 비슷한 경향이 있는거 같다. 알고리즘 문제 풀기/알고리즘 개념 2020.06.28
<스위프트&알고리즘> 10818번 최소, 최대 둘다 정답 코드에서 갖고 온것이다. let N = readLine() let input = readLine()!.split(separator: " ").map() { Int(String($0))! } var min = 1000000 var max = -1000000 for i in input { if min > i { min = i } if max < i { max = i } } print("\(min) \(max)") this got correct while the beneth it got timed out , though its on the answer board;; readLine() let a=readLine()!.split{$0==" "}.map{Int($0)!} print("\(a.min()!.. 알고리즘 문제 풀기 2020.04.16
<스위프트&알고리즘> 못풀음, 동전2 2294번 일단 2294번 한다. // // main.swift // algorithm_practice // // Created by 김동환 on 2020/04/16. // Copyright © 2020 김동환. All rights reserved. // import Foundation let line = readLine() let inputs = line?.split(separator : " ") ?? [] let n = Int(inputs.first ?? "") ?? 0 let k = Int(inputs.last ?? "" ) ?? 0 var coins: [Int] = [] var answer : [Int] = [0] for _ in 0..= coin, answer[o-coin] >= 0{ candidates... 알고리즘 문제 풀기 2020.04.16