반응형 전체 글282 백준 1620번 나는야 포켓몬 마스터 이다솜 - 스위프트(Swift) 풀이 문제가 엄청 엄청 긴데, 마지막 오박사 말만 읽으면 된다. 1. 이름을 보고 번호를 말하기 위해 Dictionary를 둔다. 2. 번호를 보고 이름을 말하기 위해 Dictionary 또는 Array을 둔다. 1. 이름을 보고 번호를 말하기 위해 Dictionary를 둔다. N이 100,000이므로, 각 쿼리를 완전탐색으로 O(N)에 수행해서는 시간 안에 통과할 수 없다. Key가 포켓몬 이름이고 Value가 번호인 딕셔너리를 두어 O(1)에 각 쿼리를 완료해야 한다. 2. 번호를 보고 이름을 말하기 위해 Dictionary 또는 Array를 둔다. 1번이랑 같은데, Key, Value 타입만 반대로 하면 된다. Key가 Int인 경우에는 배열을 subscript로 접근하는 거랑 똑같기 때문에 배열로도 가.. 2022. 1. 16. 백준 12851번 숨바꼭질 2 - 스위프트(Swift) 풀이 1697번 숨바꼭질 문제에 추가로 경우의 수까지 출력해야 하는 문제. 1. 각 점을 정점이라고 생각한다. 2. 모든 정점에 대해서 [X+1, X-1, X*2]로 가는 방향 간선 3개를 추가한다. 3. 정점 N에서 K까지의 최단거리를 구한다. 모든 간선의 길이가 1이므로 BFS로 쉽게 구할 수 있다. 4. BFS를 돌 때 이미 방문했던 곳이더라도 해당 정점을 N에서 최단거리로 온 경우라면, 또 방문해서 경우의 수를 카운트해준다. ↓ 1, 2, 3번에 대한 설명은 1697번 풀이를 확인 ↓ 백준 1697번 숨바꼭질 - 스위프트(Swift) 풀이 현재 상황을 그래프로 치환할 수 있음을 떠올리면 그 뒤로 구현은 쉽다. 1. 각 점을 정점이라고 생각한다. 2. 모든 정점에 대해서 [X+1, X-1, X*2]로 가.. 2022. 1. 15. 백준 1697번 숨바꼭질 - 스위프트(Swift) 풀이 현재 상황을 그래프로 치환할 수 있음을 떠올리면 그 뒤로 구현은 쉽다. 1. 각 점을 정점이라고 생각한다. 2. 모든 정점에 대해서 [X+1, X-1, X*2]로 가는 방향 간선 3개를 추가한다. 3. 정점 N에서 K까지의 최단거리를 구한다. 모든 간선의 길이가 1이므로 BFS로 쉽게 구할 수 있다. 1. 각 점을 정점이라고 생각한다. 현재 상황을 그래프로 나타낼 수 있다. 0부터 100,000번까지 총 100,001개의 정점이 있다. 2. 모든 정점에 대해서 [X+1, X-1, X*2]로 가는 방향 간선 3개를 추가한다. X번 정점에서 1초 만에 다이렉트로 갈 수 있는 정점은 X+1, X-1, X*2이다. 그래프에 X에서 저 세 정점으로 가는 방향 간선을 추가해준다. 방향 간선이라는 것을 주의해야 한다.. 2022. 1. 15. [Swift] 거듭제곱하기 거의 PS용 문법들만 포스팅하게 되는 것 같은데..ㅎㅎ 오늘은 거듭제곱이다. 반복문으로 구현해도 되지만 메소드로 만들어져 있다! 사용법 요약부터 하면 let resultOfPow = pow(3.0, 2.0)// 9.0 // Int로 형변환 하려면 Float형으로 호출해야 함 var sum = 0 sum += Int(resultOfPow)// Int형과 더하려면 형변환 필요 스위프트의 거듭제곱 메소드는 pow이다. 종류가 이렇게 많은데, 호출 시에 파라미터를 다 _로 생략하게 되어있으니까 자료형에 맞춰서 알아서 맞는 것으로 호출되겠지..? 하는 생각을 하며 일단 시작 pow(x,y)에서 x가 밑이고 y가 지수이다. 알고리즘 문제에서는 거의 밑과 지수 모두 정수일 때이니까 정수^정수를 해보자. 이렇게 잘 구.. 2022. 1. 15. [iOS] 백그라운드 스레드에서 타이머 돌리기 ** 아직 공부하는 중이라 틀린 내용이 있을 수도 있습니다. ** 저번 글에서는 런루프와 타이머의 관계, 타이머 생성하는 법까지 다뤘다. [Swift] Timer(타이머)와 Thread(스레드), RunLoop(런루프) ** 아직 공부하는 중이라 틀린 내용이 있을 수도 있습니다. ** 최근 프로젝트에서 반복 타이머가 필요한 경우가 있었는데, 그때 알아보았던 타이머, 스레드, 런루프에 대해 까먹기 전에 정리하 please-amend.tistory.com 요약을 하자면..! 런루프는 스레드마다 존재하면서 마우스나 키보드 같은 입력 이벤트와 타이머 이벤트를 처리해준다. 타이머는 객체를 만들어서 런루프에 추가해주어야 한다. 그럼 타이머는 어느 스레드의 런루프에서 돌리는 것이 적절할까? 메인 스레드에서는 UI와 .. 2022. 1. 15. 이전 1 ··· 47 48 49 50 51 52 53 ··· 57 다음 반응형