본문 바로가기
728x90

ios35

[Swift 알고리즘] Codility lesson3 - TapeEquilibrium 안녕하세요 코코종입니다. 이번엔 Time Complexity의 마지막 문제입니다. 간단하게 문제 설명을 하자면 [Int]의 중간을 잘라서 좌, 우 각각의 합을 비교했을 때 가장 적은 차이(절댓값)를 구하는 것입니다. 처음에 살짝 잘못 이해했던것이 원소 사이의 지점이 아니라 원소자체를 기준으로 한다고 오해해서 쬐금 꼬였습니다.(문제 잘 좀 읽자) N번 만큼 돌면서 좌 우의 배열의 합을 또 계~~~속 구해버리면 N**2가 되어버려서 시간복잡도가 너무 높아집니다. 그래서 stack구조를 활용해서 앞에서부터 더한 값의 배열, 뒤에서부터 더한값의 배열을 저장하고, 이 두 배열의 차를 구하는 아이디어를 떠올렸습니다. dif에 두 배열의 차를 저장하고 그중 가장 작은 값을 return 해줬습니다. import Fou.. 2022. 10. 31.
[Swift 알고리즘] Codility lesson3 - PermMissingElem 안녕하세요 코코종입니다. 쉬운 문제를 연달아 푸니까 자신감도 생기고 좋네여! ㅋㅋㅋ 이번 문제는 주어진 [Int]가 1 ~ N+1 의 원소를 가지는데 딱 하나의 원소가 빠져있고 그 원소를 찾는 문제였습니다. 단순하게 생각한다면 배열을 받아서 해당 배열의 크기만큼 하나씩 보고 어떤게 빠졌는지 체크하는것 이겠지만!! 주제를 생각해야겠죠? import Foundation import Glibc // you can write to stdout for debugging purposes, e.g. // print("this is a debug message") public func solution(_ A : inout [Int]) -> Int { let a = A.count + 1 var sum = a * (a +.. 2022. 10. 30.
[Swift 알고리즘] Codility lesson3 - FrogJmp 안녕하세요 코코종입니당. lesson3은Time Complexity 인데요 마침 이전 문제에서 시간복잡도를 고려하지 않아서 틀렸어서 ㅎ.. (사실 이걸 노린 순서인가..?) 한번더 생각하게 되더라구요! 현 위치 X, 목표지점 Y, 한번에 뛸 수 있는 거리 D를 주고 Y지점에 도달하는(지나가도 됨) 시간을 구하는 문제였습니다. 단순히 X에서 무한히 D만큼을 더해주고 Y와 비교해도 되지만 아마 그렇게 하면 틀리겠죠?(그러라고 만든문제) 그래서 이동해야 하는 거리(Y - X) / 한번에 뛸 수 있는 거리(D) 를 해준 후 나머지가 있다면 한번 더 뛰게 했습니다. import Foundation import Glibc // you can write to stdout for debugging purposes, e.. 2022. 10. 30.
[Swift 알고리즘] Codility lesson2 - OddOccurrencesInArray 안녕하세요 코코종입니다! 오늘은 OddOccurrencesInArray라는 문제를 풀어봤는데요! 홀수개의 원소를 가지는 Array에서 단 한가지 요소만 짝을 이루지 못하는데 그 원소를 찾아내는 문제였습니다.(솔로 찾기..!) public func solution(_ A : inout [Int]) -> Int { var stack: [Int] = [] let arr: [Int] = A arr.forEach { a in if !stack.contains(a) { stack.append(a) } else { stack = stack.filter{ $0 != a } } } return stack.first! } 처음에는 단순히 Stack에 해당 원소의 유무에 따라 append와 remove를 해준건데요 네,.... 2022. 10. 30.
[Swift 알고리즘] Codility lesson1 - BinaryGap 간만에 찾아온 코코종입니닷... 갓생을 살기로 마음먹어서... iOS, 코딩테스트, CS 공부를 하기로 마음먹은지 3일차입니당 코딜리티의 lesson을 다 swift로 풀어보려고 해서 그 첫삽을 떴답니다 ㅎㅎ.. 해당 문제는 lesson1 - BinaryGap 에서 확인이 가능합니다. 간단하게 설명하면 주어진 Int N을 이진수로 바꾸고 이 중 1과 1사이에 있는 연속된 0의 최대 갯수를 구하는 문제입니다. 저는 Int N -> String 하는 메서드인 intToBinary()를 구현했습니다. 이후 해당 String을 forEach로 돌면서 0인지 1인지에 따라 tmp에 현재 연속된 0의 갯수를 저장했습니다. 1을 만나게되면 answer과 tmp값중 큰 값으로 answer를 갱신해주고 tmp를 0으로 .. 2022. 10. 12.
[iOS/Swift] parentViewController가 보이는 Modal 띄우기 안녕하세요 코코종입니다. 오늘은 Modal(present)로 다른 뷰컨을 띄울 때 부모가 뒤에 보이도록 한번 해보고자 합니다. 대부분 .automatic이나 .fullScreen으로 모달을 띄우는데요, automatic으로는 아래와 같이 띄울수는 있지만 fullScreen에서는 생각한대로 모달을 띄울수 없습니다. 어라랏..? 뭔가 고장난것 처럼 보이네요..?(내 쓈장의 새꽈른 불렉) 첨부한 Hierarchy를 참고해보면 이미 부모 VC는 보이지 않고 그 뒤에 윈도우씬이 보이네요. 즉 fullScreen은 부모를 보여주지 않는 것으로 보입니다. 해결법부터 알려드리자면 modalPresentationStyle = .overCurrentContext 로 하시면 됩니다. 그럼 아래와 같이 부모 바로 위에 mod.. 2022. 6. 27.
728x90