전체 글
[Flutter, Firebase] CocoaPods could not find compatible versions for pod "Firebase/CoreOnly": 에러 (M1 Mac 환경)
오류 메시지 firebase_core: Using Firebase SDK version '9.4.0' defined in 'firebase_core' [!] CocoaPods could not find compatible versions for pod "Firebase/CoreOnly": In Podfile: firebase_core (from `.symlinks/plugins/firebase_core/ios`) was resolved to 1.21.1, which depends on Firebase/CoreOnly (= 9.4.0) None of your spec sources contain a spec satisfying the dependency: `Firebase/Co..
[Flutter, Firebase] Pub installs executables into $HOME/.pub-cache/bin 에러 (Firebase CLI)
오류 메시지 Warning: Pub installs executables into $HOME/.pub-cache/bin, which is not on your path. You can fix that by adding this to your shell's config file (.bashrc, .bash_profile, etc.): export PATH="$PATH":"$HOME/.pub-cache/bin" 문제 상황 https://firebase.google.com/docs/flutter/setup?hl=ko&platform=ios Flutter 앱에 Firebase 추가 Google은 흑인 공동체를 위한 인종적 평등을 추구하기 위해 노력하고 있습니다. 자세히 알아보기 의견 보내기 Flutter 앱에 ..
[프로그래머스] 67260. 동굴 탐험
2020 카카오 인턴십 - 67260. 동굴 탐험 Python 풀이 풀이 복잡한 알고리즘을 생각할 필요 없이, BFS로 탐색하면서 order (방문 순서) 만 처리해 주면 된다고 생각했다. 그리고 효율성을 위해 방문 체크는 Hash로 구성된 Set을 이용. 근데.. 각 루프마다 False 체크를 하니까 시간초과가 난다. def A(): for room in rooms: if room not in follow: return False return True 얘 때문 맞는듯.. Code from collections import deque def solution(n, path, order): pre = [i[0] for i in order] follow = [i[1] for i in order] visit =..
[프로그래머스] 67258. 보석 쇼핑
2020 카카오 인턴십 - 67258. 보석 쇼핑 Python 풀이 풀이 1 Two Pointer(투 포인터) 알고리즘을 이용해 풀이. 외국에선.. Two Pointer Technique(투 포인터 테크닉) 이라고 부르는 듯. start, end Pointer를 정하고, 처음엔 조건을 만족할 때까지 end += 1 그 이후, 조건을 만족하는 한 start += 1 그렇게 조건을 만족하는 [start, end]를 구함. 그 이후, 뒤쪽에 더 짧은 답이 존재할 수 있으니 end에 +1을 해주며, end < len(gems) 이하에서 반복. 그렇게 Two Pointer를 이용해 풀이하였으나, 시간 초과. Code def solution(gems): gemList = len(set(gems)) start = 0..
[프로그래머스] 67256. 키패드 누르기
2020 카카오 인턴십 - 67256. 키패드 누르기 Python 풀이 풀이 dictionary로 각 키패드의 행, 렬을 저장하고, 이를 이용해 키패드간의 거리를 계산하면서 if-else문을 통해 처리. Code from collections import deque def solution(numbers, hand): isRight = True if (hand == "right") else False keyPad = {1: [1, 1], 2: [1, 2], 3: [1, 3], 4: [2, 1], 5: [2, 2], 6: [2, 3], 7: [3, 1], 8: [3, 2], 9: [3, 3], '*': [4, 1], 0: [4, 2], '#': [4, 3]} def distanc..
[프로그래머스] 67257. 수식 최대화
2020 카카오 인턴십 - 67257. 수식 최대화 Python 풀이 풀이 우선, 이런 중위 표현식, 후위 표현식, 연산자 우선순위에 관한 문제들을 숱히 Stack으로 풀어 왔기에, Stack을 이용해 풀이해 보자 - 라고 생각했으나, 굳이 그럴 필요 없을 것 같아서 간단하게 생각하여 풀이했다. 우선순위 경우의 수가 최대 6가지밖에 없으니, 6가지 경우의 수를 모두 따져 보아 계산한다. 만약, 우선순위가 ['*', '-', '+'] 라면, '*' 를 모두 찾아 앞뒤로 계산 후 다시 그 index쪽에 집어넣고, 그 다음 '-' 도 같은 방법으로. 마지막으로 '+' 도 같은 방법으로 계산. 예를 들어, 아래와 같다면, ex..
[프로그래머스] 64062. 징검다리 건너기
2019 카카오 개발자 겨울 인턴십 - 64062. 징검다리 건너기 Python 풀이 풀이 일단, 효율성을 측정하는 문제이기 때문에, 한 명이 징검다리를 건널 때 마다 모든 돌에 -1을 하고, 그 때마다 k보다 간격이 큰 징검다리가 있는 지 검사하는 방식은 통할 리가 없음. def solution(stones, k): for i in range(1, 200000000): stones = list(map(lambda x: x-1, stones)) cnt = 0 for stone in stones: if stone < 1: cnt += 1 if cnt == k: return i else: cnt = 0 이런 식으로. 당연히 정확성만 통과, 효율성은 통과 하나도 못 함. 풀이 2 이것도 Union-Find로 ..
[프로그래머스] 64063. 호텔 방 배정
2019 카카오 개발자 겨울 인턴십 - 64063. 호텔 방 배정 Python 풀이 풀이 Union-Find 알고리즘을 이용하여 풀면 될 것이라고 직감이 왔다. [백준] 10775. 공항 문제와 굉장히 유사했기 때문. 그런데 이제, 효율성을 위해 알고리즘을 조금 바꿀 필요가 있었다. Find는 그대로 두지만, Union하는 과정에서, 무조건 숫자가 높은 쪽이 root가 되도록 하는 것. 그렇게 하고, n번의 방이 찰 때마다, n과 n+1을 Union하는 방식으로 진행한다. 이 예시에서는, k = 10 room_number = [1,3,4,1,3,1] 맨 처음엔 dictionary가 이 상태일 것이다. {1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, 10:..