Upperbound , Lowerbound
·
Algorithm/백준
https://www.acmicpc.net/problem/2805 https://www.acmicpc.net/problem/1654 https://www.acmicpc.net/problem/10816 LG CNS 사전 코딩테스트 문제를 가벼운 마음으로 풀었는데, 두번째 문제를 테스트 케이스만 통과하고 전체 히든 케이스는 다 틀렸다. 나의 접근 방법이 아예 틀렸음을 깨닫고 구글링을 해서 유형을 찾아보니 up, lb 문제와 똑같았다. 이번 기회에 다시 복습을 해야겠다고 느꼈다.숫자카드 2해당 문제가 동일한데, 632101010-10-1073 이 문제에서 10의 등장 횟수를 구하려면 어떻게 해야할까? 배열을 순회하며 등장횟수를 계산해줄 수도 있지만, 더 간단하게 풀 수 있다. -10-10233671010..
투씨에스지 면접 후기
·
면접/면접후기
1시반에 구로디지털단지역 회사 사무실로 봐서 1시간 반에 코테 두문제를 풀었다. 첫문제는 딱히 어렵진 않았던것 같은데 내가 생각을 너무 꼬아 생각해서 잘 못풀었고, 두번째 문제는 상대적으로 어려웠는데 잘 풀어냈다고 해주셨다. 문제 풀이 후에, 면접을 보며 간단하게 어떻게 풀었는지 이야기를 나눴다. 그 뒤에, 개인 이력서 기반으로 CS질문을 하셨는데 부족함을 많이 느꼈다. 그 전에, 갑자기 알고리즘 문제를 영어로 직역해보라고 하셔서 살짝 당황했다. Q1. 문답 서비스를 진행하며 가장 잘한점은 무엇인지?이전 프로젝트에서 인프라를 담당하지 않다보니 팀원이 헤매고 있을 때 도와주지 못한 것을 계기로 해당 프로젝트에서 CI/CD 구축 및 AWS를 전부 다 담당했다고 이야기했다. Q2. Git submodule을..
세 수의 합
·
Algorithm/백준
https://www.acmicpc.net/problem/2295 유형해시이분 탐색 풀이방법int 배열에서 x + y + z = k가 존재할 때, k의 최대값을 찾는 문제다. (단, 인덱스는 중복 가능) 배열을 이중 탐색하며 x + y합을 HashSet에 저장한다. 이 때 배열의 마지막 값은 저장하지 않아도 된다. (정렬이 된 경우에)x + y를 이제 알았으니 k - z를 배열을 순회하며 확인한다. 배열을 이중으로 순회하며 arr[i] - arr[j]를 하게되면 모든 k - z의 순서쌍을 구할 수 있다. 이 때, 해당 값이 set에 존재한다면 k의 최댓값을 갱신해준다. (arr[i]를 통해) 이분 탐색을 통해서도 값을 탐색할 수 있는데 HashSet이 더 로직을 구현하기 편했던것 같다. 코드impor..
멀티버스 Ⅱ
·
Algorithm/백준
https://www.acmicpc.net/problem/18869 알고리즘 분류정렬값 / 좌표 압축 접근 방법처음에, 어떻게 각 우주들의 대소관계를 비교할지 애를 먹었다. 내가 처음에 떠올린 방법은Ai Ai = Aj → Bi = Bj 일 때 배열에 0 저장Ai > Aj → Bi > Bj 일 때 배열에 -1 저장 이런식으로 각 우주의 대소관계를 저장해주려고 했는데 모든 배열을 순회하는데만 O(N^2) * 100이라 시간초과가 발생한다. 문제에서 우주의 개수가 100개이고, 각 우주의 크기가 10,000이기 때문에 시간복잡도를 줄여야 한다. 고민해봐도 답을 떠올리지 못해 GPT한테 물어봤는데 정말 괜찮은 풀이를 알려줬다. [1, 3, 2] 라는 원래 배열이 있다고 가정하자.해쉬맵을 선언하여 [행성, 순서]..
프로그래머스 Lv.2 카카오 문제 부시기
·
Algorithm/프로그래머스 코딩테스트 문제풀이전략
1. [1차] 캐시https://school.programmers.co.kr/learn/courses/30/lessons/17680 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr LRU와 캐시 miss/hit을 어떻게 구현할지 감이 안와서 인터넷 검색을 했다.List를 통해 구현했는데, 리스트에 현재 도시가 없다면 `cache miss`이므로 시간 +5를 해주고 만약에 리스트의 길이가 cacheSize를 넘는다면 리스트의 맨 앞을 제거.`cache hit`인 경우엔 시간 +1을 해주고, 반드시 해당 값을 리스트에서 제거하고 나서 다시 넣어주어야 한다. 처음에 무슨 차이가 있나 싶어 해당 연산을 해주지 ..
프로그래머스 Lv.1 카카오 구현 부시기
·
Algorithm/프로그래머스
1. 숫자 문자열과 영단어https://school.programmers.co.kr/learn/courses/30/lessons/81301 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr간단하게 숫자에 대응되는 배열을 만들고 변환해주면 되는 문제였다. 2. [1차] 비밀지도https://school.programmers.co.kr/learn/courses/30/lessons/17681 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 정수가 주어졌을 때 binary값으로 변환한 뒤 or 계산을 통해서 맵을..
3/24 풀이
·
Algorithm/Leetcode
https://leetcode.com/problems/count-the-number-of-complete-components/description/?envType=daily-question&envId=2025-03-22 2685. Count the Number of Complete Components   그래프를 순회하면서, 연결된 그래프인 경우에만 결과값을 더해주는 문제였다.나름 쉽다고 생각해서 접근했지만, 생각보다 벽에 막혔다. 처음에 사이클을 판별하는 DFS를 통해서 문제 접근을 했지만, 3-4나 5와 같은 그래프 형태도 연결된 그래프로 가정했기 때문에 틀렸다. 다른 사람의 풀이를 참고해서야 힌트를 얻을 수 있었는데, 매번 DFS를 순회할 때 마다 각 노드 번호를 리스트에 삽입해준다.예를 들어서 0..
진우의 달 여행 (Large)
·
Algorithm/백준
https://www.acmicpc.net/problem/17485 접근법DFS기존에 접근했던 방식은 DFS, 백트래킹을 사용하여 문제를 풀이했다. 하지만, 문제에서 주어진 방향은 3개고, N과 M의 최댓값이 1,000이기 때문에 최악의 케이스엔 3^(1000*1000)이 나오기 때문에 당연히 시간초과가 발생한다. 엠로 코테에서도 3^(200*200)이 나왔기 때문에 시초가 발생할 것이다. DP다른 사람들의 풀이를 보면, DP를 사용하여 풀이하였다.DP[i][j][n]: (i,j)위치에서 n방향으로 도달했을 때의 최소 비용n = 0 (왼쪽 아래 방향)n = 1 (바로 위)n = 2 (오른쪽 아래 방향)  이 그림을 보면, 5로 도달하는데 3가지 케이스가 있음을 알 수 있다.그리고 중요한 조건이 우주선은 ..
2467. Most Profitable Path in a Tree
·
Algorithm/Leetcode
https://leetcode.com/problems/most-profitable-path-in-a-tree/description/  문제 이해문제에서 요구하는 바는 이렇다.Alice는 노드 0에서 출발해서, 리프 노드까지 도달한다.Bob은 주어진 노드에서 출발해서, 노드 0까지 도달한다.이 과정 속에서, Alice가 가질 수 있는 최대 보상 값을 구하는 문제였다. 우선, 보상 값을 구할 때 세가지 다른 케이스가 존재했다.Alice가 해당 노드에 먼저 도착한 경우: 해당 보상을 그대로 얻는다.Bob이 먼저 해당 노드에 도착한 경우: 보상을 획득하지 못한다.둘이 동시에 도착한 경우: 현재 보상 / 2를 얻는다.이러한 문제 흐름을 먼저 해결하기 위해선, Bob이 각 노드에 도착하는 시간을 먼저 계산해줘야 했..
[프로그래머스] 지게차와 크레인
·
Algorithm/프로그래머스
https://school.programmers.co.kr/learn/courses/30/lessons/388353 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 설명A 회사의 물류창고에는 알파벳 대문자로 종류를 구분하는 컨테이너가 세로로 n 줄, 가로로 m줄 총 n x m개 놓여 있습니다. 특정 종류 컨테이너의 출고 요청이 들어올 때마다 지게차로 창고에서 접근이 가능한 해당 종류의 컨테이너를 모두 꺼냅니다. 접근이 가능한 컨테이너란 4면 중 적어도 1면이 창고 외부와 연결된 컨테이너를 말합니다.최근 이 물류 창고에서 창고 외부와 연결되지 않은 컨테이너도 꺼낼 수 있도록 크레인을 도입했습니다. 크..