본문 바로가기

분류 전체보기158

[프로그래머스] 거리두기 확인하기 2021 카카오 인턴십 DFS 문제 : https://programmers.co.kr/learn/courses/30/lessons/81302 코딩테스트 연습 - 거리두기 확인하기 [["POOOP", "OXXOX", "OPXPX", "OOXOX", "POXXP"], ["POOPX", "OXPXP", "PXXXO", "OXXXO", "OOOPP"], ["PXOPX", "OXOXP", "OXPOX", "OXXOP", "PXPOX"], ["OOOXX", "XOOOX", "OOOXX", "OXOOX", "OOOOO"], ["PXPXP", "XPXPX", "PXPXP", "XPXPX", "PXPXP"]] [1, 0, 1, 1, 1] programmers.co.kr 분석 : 크기는 5X5 배열 예를 들어 입력이 2차원 배열로 주어질 때 P는 사람.. 2021. 9. 5.
[백준] 1463 1로 만들기 DP 문제 : https://www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net 분석 : 재귀와 메모제이션을 이용해 풀었다. 처음에 if (d[n] > 0) return d[n]; 부분을 넣어주지 않아 시간 초과가 났었고 d[1]일때 n == 1일때 처리를 return 0으로 처리 해주지 않아 100퍼에서 에러로 헤맸다 c++ 코드 : // // 1463_makeOne.cpp // SOMA👩🏻‍💻 // // Created by JoSoJeong on 2021/08/23. // #include #include #include using namespace std; int d[10000.. 2021. 8. 23.
GDONG 개인정보 처리 방침 ('https://jouureee.tistory.com/'이하 'GDONG 공동 구매 커뮤니티')은(는) 「개인정보 보호법」 제30조에 따라 정보주체의 개인정보를 보호하고 이와 관련한 고충을 신속하고 원활하게 처리할 수 있도록 하기 위하여 다음과 같이 개인정보 처리방침을 수립·공개합니다. 제1조(개인정보의 처리목적) (이)가 개인정보 보호법 제32조에 따라 등록․공개하는 개인정보파일의 처리목적은 다음과 같습니다. 제2조(정보주체와 법정대리인의 권리·의무 및 그 행사방법) ① 정보주체는 GDONG에 대해 언제든지 개인정보 열람·정정·삭제·처리정지 요구 등의 권리를 행사할 수 있습니다. ② 제1항에 따른 권리 행사는GDONG에 대해 「개인정보 보호법」 시행령 제41조제1항에 .. 2021. 8. 22.
[리트코드] 98. Validate Binary Search Tree - BT 문제 : https://leetcode.com/problems/validate-binary-search-tree/ Validate Binary Search Tree - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 예시 : Input: root = [5,1,4,null,null,3,6] Output: false Explanation: The root node's value is 5 but its right child's value is 4. 주어진 input이 .. 2021. 8. 17.
[프로그래머스] 보석 쇼핑 2020 카카오 인턴쉽 문제 : https://programmers.co.kr/learn/courses/30/lessons/67258 코딩테스트 연습 - 보석 쇼핑 ["DIA", "RUBY", "RUBY", "DIA", "DIA", "EMERALD", "SAPPHIRE", "DIA"] [3, 7] programmers.co.kr 분석 : leetcode에 minimun window subString 문제를 풀고 나서 다시 풀었다! 투포인터로 접근했지만 방법을 모르겠으니 하드 코딩화 되어 가는 것만 같아서 .. TC도 통과도 못하고 있었던 찰나 슬라이딩 윈도우 알고리즘과 관련된 문제를 풀고나서 다시 적용해보았다. c++ 코드 : // // [KAKAO] 2020_jewerly_re.cpp // SOMA👩🏻‍💻 // // Crea.. 2021. 8. 5.
[리트코드] 76. Minimum Window Substring (슬라이딩 윈도우) 문제 : https://leetcode.com/problems/minimum-window-substring/ Minimum Window Substring - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 난이도 : hard 풀이 알고리즘 : sliding window(슬라이딩 윈도우) ⭐️ 슬라이딩 윈도우란 ? 일정 범위 만큼의 윈도우(w)를 가지고 슬라이딩 ~ 하며 찾는 기법을 말합니다. 주로 구간 문제에 많이 사용되며 투포인터와 방법론이 비슷하여 같이 얘기 .. 2021. 8. 5.
[리트코드] 3. Longest Substring Without Repeating Characters 문제 : https://leetcode.com/problems/longest-substring-without-repeating-characters/ Longest Substring Without Repeating Characters - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 난이도 : Medium 풀이 방법 : 브루트 포스 O(n^2) 문자열 s에서 중복되는 문자 없이 가장 긴 서브 스트링을 찾는 문제였다. 슬라이딩 윈도우 방식을 사용하면 O(n) 만큼으.. 2021. 7. 16.
[리트코드] 1. Two Sum (두수의 합) 문제 : https://leetcode.com/problems/two-sum/ Two Sum - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 난이도 : easy 풀이 방법 : 부르트포스 O(n^2) c++ 코드 : class Solution { public: vector twoSum(vector& nums, int target) { vector answer; for(int i = 0; i < nums.size(); i++){ for(int j = i + 1; .. 2021. 7. 12.
[iOS/swift] 유용한 사이트 정리 모음.zip 아니 매번 필요한 기능을 구글에 쳐서 깃허브에 정리된 프레임워크, 라이브러리만 사용했었는데 이런걸 모아놓는 사이트가 있다는 사실을 첨 알게 되었다 .. 신세계다!!! 그래서 앞으로 참고할 사이트 기억해 두기 위해 이곳에 다 정리해두려한다 추후에 계속 업데이트 할 예정 !! Cocoa controls - www.cocoacontrols.com/ Custom Controls for iOS, iPadOS, macOS, tvOS, and watchOS - Cocoa Controls Is this hosted on GitHub? If this control is hosted on GitHub, paste the address below, otherwise click "Not Hosted on GitHub". Gi.. 2021. 7. 3.
위상 정렬 Topological Sort 위상 정렬 위상을 기준으로 정렬하는 알고리즘 (위상 : incoming edge) 일의 순서를 정할 필요가 있을때 많이 쓰인다. 위상 정렬 알고리즘 특징 DAG(direct acycle graph)에서 가능한 정렬 방법이다. 사이클이 발생하는 경우 위상 정렬 수행 할 수 없다. 의존성이 없는 노드부터 하나씩 차례대로 처리하여 의존성 높은 순으로 처리한다. * 시간 복잡도 O(V+E) 위상 정렬 알고리즘 순서 각 vertex의 위상(incoming edge수)를 저장한다. 위상이 0인 노드들에 대해 모두 queue에 넣는다. queue에서 node를 꺼내 위상 정렬에 넣어준다. 위상 정보를 하나 낮추고 엣지를 없앤다. 위상이 0이 된 노드들을 큐에 저장한다. 반복 알고리즘 예시 위상 그래프가 이렇게 되어 .. 2021. 6. 13.
[백준] 5567 결혼식 구현 문제 : https://www.acmicpc.net/problem/5567 5567번: 결혼식 2와 3은 상근이의 친구이다. 또, 3과 4는 친구이기 때문에, 4는 상근이의 친구의 친구이다. 5와 6은 친구도 아니고, 친구의 친구도 아니다. 따라서 2,3,4 3명의 친구를 결혼식에 초대한다. www.acmicpc.net 분석 : 결혼식에 올 동기들 중 내 친구, 내 친구의 친구만 초대 하려면 몇명 초대 해야 묻는 문제였다. 친구 관계를 friends vector에 넣어 friends[친구] = ["친구의 친구들 리스트"] 를 찾으면 되는 문제지만 * 주의 해야 할 점이 있다. 친구의 친구가 내 친구일 수도 있기 때문이다. 따라서 우선 내 친구들만 queue에 넣어 result 값을 증가시켜준 다음 que.. 2021. 6. 13.
[백준] 2579 계단 오르기 DP 문제 : https://www.acmicpc.net/problem/2579 2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점 www.acmicpc.net 분석 : 계단이 있을 시 계단을 오르는데 규칙이 있다 --> 점화식이군 계단은 한 번에 한 계단씩 또는 두 계단씩 오를 수 있다. 즉, 한 계단을 밟으면서 이어서 다음 계단이나, 다음 다음 계단으로 오를 수 있다. 연속된 세 개의 계단을 모두 밟아서는 안 된다. 단, 시작점은 계단에 포함되지 않는다. 마지막 도착 계단은 반드시 밟아야 한다. stairArr [i] = i번째 계단의 값 d [i] = .. 2021. 6. 13.
[iOS] Codable - Encodable & Decodable 프로토콜 json을 파싱하는 방법 중 하나이다. 다른 하나는 다음 글에서 알아보겠다. (많관부) Codable 이란? -> 자신을 변환하거나 외부 표현(ex> json)으로 변환할수 있는 타입 보통은 json으로 가장 많이 사용된다! 그래서 아래 예시도 json 타입으로 변환하는 방법을 살펴볼 것이다. Encodable과 Decodable을 통틀은 것 typealias는 뭐지 ?? * typealias - 기존 선언된 데이터 타입에 별칭을 사용함으로서 코드를 더 읽기 쉽도록 만드는 문법 예를 들어서 typealias Name: String 이라 했을 때 let name: Name = "홍길동" == let name: String = "홍길동" 기존 타입 String의 별명을 Name으로 했을때 아하 String .. 2021. 5. 31.
[프로그래머스] Summer/Winter Coding 스킬트리 level2 문제 : programmers.co.kr/learn/courses/30/lessons/49993 코딩테스트 연습 - 스킬트리 programmers.co.kr 분석 : 분명 나보다 더 효율적인 코드가 있을 것이라 생각한다! 하지만 이 문제는 다행히(?) 효율성 체크하는 문제가 아니여서 맞출 수 있었다. (soma 첫 게임 문제와 비슷한 유형의 문제라(근데 그 친구는 위상 정렬이었다) 꼭 풀고 싶었다) 이 문제는 전에 최장 공통 부분 수열 공부했을때 언뜻 봤었던 최장 공통 부분 문자열과 비슷해 보이지만 skill의 모든 문자열을 스킬 트리가 가지고 있지 않아도 된다는 점에서 조금 다르다. 만약에 제시된 skill 순서가 CBD 이고 순서에 맞는지 검사하고 싶은 대상들 {"CBADF", " AECB", "OP.. 2021. 5. 8.
[백준] 1149 RGB 거리 DP ㅇ문제 : www.acmicpc.net/problem/1149 1149번: RGB거리 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 www.acmicpc.net 분석 : rgb 색깔을 양 옆 집마다 겹치지 않게 색칠하는데 그 최소 비용을 구하는 문제다. dp 배열은 2차원 배열로 이루어져 있으며 dp[i][0], dp[i][1], dp[i][2]는 각각 i번째 집까지 색칠할때 0-빨간색 최소 비용,1-노란색 최소 비용,2-파란색 최소 비용을 저장하고 있는 배열이다. 예를 들어 dp[1][1]은 이전 0번째 집을 색칠할때 드는 최소 비용에.. 2021. 5. 8.
[프로그래머스] 경주로 건설 2020 카카오 인턴쉽 level3 문제 : programmers.co.kr/learn/courses/30/lessons/67259 코딩테스트 연습 - 경주로 건설 [[0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0],[0,0,0,0,0,1,0,0],[0,0,0,0,1,0,0,0],[0,0,0,1,0,0,0,1],[0,0,1,0,0,0,1,0],[0,1,0,0,0,1,0,0],[1,0,0,0,0,0,0,0]] 3800 [[0,0,1,0],[0,0,0,0],[0,1,0,1],[1,0,0,0]] 2100 [[0,0,0,0,0,0],[0,1,1,1,1,0],[0,0,1,0,0,0],[1,0,0,1,0,1],[ programmers.co.kr 분석 : 이 문제는 백준에서 풀었던 내리막길 문제와 비슷하게 dp + dfs의 조합문제였다... 2021. 5. 7.
[프로그래머스] Summer/Winder Coding 기지국 설치 level3 문제 : programmers.co.kr/learn/courses/30/lessons/12979 코딩테스트 연습 - 기지국 설치 N개의 아파트가 일렬로 쭉 늘어서 있습니다. 이 중에서 일부 아파트 옥상에는 4g 기지국이 설치되어 있습니다. 기술이 발전해 5g 수요가 높아져 4g 기지국을 5g 기지국으로 바꾸려 합니다. 그런데 5 programmers.co.kr 분석 : 시간초과 + 에러난 c++ 코드 : // // [SW] 2018_BaseStation.cpp // SOMA👩🏻‍💻 // // Created by JoSoJeong on 2021/05/06. // #include #include #include #include #include using namespace std; //vector statio.. 2021. 5. 6.
[백준] 16236 아기 상어 DFS, Priority-Queue 문제 : www.acmicpc.net/problem/16236 16236번: 아기 상어 N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다. 아기 상어와 물고기는 모두 크기를 가 www.acmicpc.net 문제 설명 : -> 아기 상어가 몇초 동안 물고기 잡아먹을 수 있는지 출력하시오 공간 n = 4 0: 빈 칸 1, 2, 3, 4, 5, 6: 칸에 있는 물고기의 크기 9: 아기 상어의 위치 아기 상어가 움직일 수 있는 조건 1. 자기 주변에 인접한 물고기 && 먹을 수 있다면 가장 인접한 물고기를 먹으러 간다. 2. 인접한 물고기가 여러 마리라면 가장 위에 있는 물고기, 가장 왼쪽에 있는 물고기.. 2021. 5. 6.
[백준] 9095 1,2,3 더하기 DP 문제 : www.acmicpc.net/problem/9095 9095번: 1, 2, 3 더하기 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다. www.acmicpc.net 분석 : 점화식을 세우면 간단히 해결할 수 있는 문제였다! 큰 문제가 작은 문제로 나누어지는 전형적인 dp 문제였고 1, 2, 3의 합으로 나타낸다는 것은 1일때 1 2일때 1 + 1 2 3일때 1 + 1 + 1 1 + 1 + 2 1 + 2 + 1 1 + 1 + 2 1 + 3 과 같이 나타내어지는 것을 의미한다. n = 4일 경우 나타내어지는 경우의 수를 memo[4]라고 하자 그럴때 경우의 수는 1 + memo[3] 2 + memo[2] 3 + memo[1] 일 것이다. 따라서 점화식은 memo[n.. 2021. 5. 4.
[iOS] View Controller 생명주기 뷰 컨트롤러는 데이터 객체와 뷰 사이의 중개자이다. ● method viewDidLoad() - 뷰를 메모리에 로드 한 후 수행, 뷰의 초기화 작업 viewWillAppear() - will : 화면에 표시되기 직전 호출 - 뷰가 화면에 나타날 때 호출되는 메서드 viewDidAppear() - did : 화면이 표시된 직후 호출 viewWillDisappear() - 뷰가 화면에서 사라질 때 호출되는 메서드 viewDidDisappear() - 뷰가 화면에서 완전히 사라졌을 때 호출되는 메서드 ●생명 주기(life cycle) viewDidLoad ↓ viewWillAppear ↓ viewDidAppear ↓ viewWillDisappear ↓ viewDidDisappear ↓ viewDidUnload.. 2021. 5. 3.