Problem Solving/Programmers
-
Programmers [2018 KAKAO BLIND RECRUITMENT]: [1차] 프렌즈4블록/BFSProblem Solving/Programmers 2021. 1. 3. 23:16
programmers.co.kr/learn/courses/30/lessons/17679 코딩테스트 연습 - [1차] 프렌즈4블록 프렌즈4블록 블라인드 공채를 통과한 신입 사원 라이언은 신규 게임 개발 업무를 맡게 되었다. 이번에 출시할 게임 제목은 프렌즈4블록. 같은 모양의 카카오프렌즈 블록이 2×2 형태로 4개가 붙 programmers.co.kr 전형적인 좌표평면 문제이당 1️⃣블록 팝 2️⃣중력 이라는, 코딩테스트에 매우매우 자주 나오는 빈출 유형이기 때문에 반드시 여러 유형의 문제를 풀고, 코드를 외워놔야 한다 1️⃣블록 팝: 인접한 블록과 같다면 해당 블록을 팝 한다. 중요한 것은 이중 for문을 돌면서 실시간으로 pop을 해주면 안 되고, 팝 목록에 추가만 해줘야 한다 해당 그림에서 좌표가 ..
-
Programmers [2019 카카오 개발자 겨울 인턴십]: 튜플Problem Solving/Programmers 2021. 1. 2. 23:49
programmers.co.kr/learn/courses/30/lessons/64065 코딩테스트 연습 - 튜플 "{{2},{2,1},{2,1,3},{2,1,3,4}}" [2, 1, 3, 4] "{{1,2,3},{2,1},{1,2,4,3},{2}}" [2, 1, 3, 4] "{{4,2,3},{3},{2,3,4,1},{2,3}}" [3, 2, 4, 1] programmers.co.kr 배열을 집합으로 표현했을 때의 튜플이 주어지고, 이를 원 배열로 돌리는 문제이다. 1️⃣ 문자열을 '{', '}', ','로 분리한다 ("{{4,2,3},{3},{2,3,4,1},{2,3}}" -> "4,2,3", "3", "2,3,4,1", "2,3") 2️⃣ 분리한 문자열을 리스트로 변환한다 (-> [[4,2,3], [3..
-
Programmers [2018 KAKAO BLIND RECRUITMENT]: [1차] 비밀지도Problem Solving/Programmers 2021. 1. 2. 00:21
programmers.co.kr/learn/courses/30/lessons/17681 코딩테스트 연습 - [1차] 비밀지도 비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다 programmers.co.kr 숫자로 암호화된 배열 정보를 입력받고, 10진수를 2진수로 변환해서 배열로 변환한다 그리고 두 개의 배열을 OR 연산해서 문자열로 변환해주면 되는 문제 !! def solution(n, arr1, arr2): answer = [] m = [] for i in arr1: m.append([0 for _ in range(n)]) for j in range(n): m[-1]..
-
Programmers [2017 카카오코드 예선]: 카카오프렌즈 컬러링북Problem Solving/Programmers 2020. 12. 31. 00:34
programmers.co.kr/learn/courses/30/lessons/1829# 코딩테스트 연습 - 카카오프렌즈 컬러링북 6 4 [[1, 1, 1, 0], [1, 2, 2, 0], [1, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 3], [0, 0, 0, 3]] [4, 5] programmers.co.kr 배열 내의 Connected Component의 개수를 구한 뒤, 가장 원소를 많이 가진 연결요소의 원소 수를 구하면 된다!! #include #include using namespace std; int N,M,dx[] = { 1,0,-1,0 }, dy[] = { 0,1,0,-1 }; bool visit[101][101]; typedef struct { int x, y; }po..
-
Programmers [Summer/Winter Coding(~2018)]: 스킬트리(Python)Problem Solving/Programmers 2020. 11. 15. 00:08
programmers.co.kr/learn/courses/30/lessons/49993 코딩테스트 연습 - 스킬트리 programmers.co.kr 스킬과 스킬트리가 아래와 같다면, 스킬트리에 있는 element가 스킬의 순서대로 있는지 count 하는 문제 "CBD" ["BACDE", "CBADF", "AECB", "BDA"] def solution(skill, skill_trees): answer = 0 for s in skill_trees: idx=0 k=1 print(s) for i in range(len(s)): if idxidx: k=0 if k==1: answer+=1 return answer
-
Programmers [탐욕법 Greedy] : 큰 수 만들기 풀이 및 코드Problem Solving/Programmers 2020. 10. 1. 15:44
programmers.co.kr/learn/courses/30/lessons/42883?language=cpp 코딩테스트 연습 - 큰 수 만들기 programmers.co.kr 풀이에 따라 시간이 확연하게 차이나는 큰 수 만들기 문제 주어진 숫자에서 k개의 숫자를 제거했을 때 가장 큰 수를 반환해야 한다 하지만 정석적으로 N자리의 숫자 중 K개를 제거하는 경우를 모두 구하면 아래 사진의 오른쪽 위와 같은 공식이 나온다 그렇기에 최대 백만자리에서는 시간초과가 날 수 밖에 그렇기 때문에 다음과 같이 풀어줬다 len = number의 length - k (목표 문자열 길이)라고 했을 때, ① number내의 모든 문자를 탐색하면서 현재 인덱스부터 뒤에서 len개만큼 확인하면서 최댓값을 구한다 ② 구한 최댓값을..
-
Programmers [2020 카카오 인턴십] : 수식 최대화 풀이 및 코드Problem Solving/Programmers 2020. 8. 31. 00:25
https://programmers.co.kr/learn/courses/30/lessons/67257 코딩테스트 연습 - 수식 최대화 IT 벤처 회사를 운영하고 있는 라이언은 매년 사내 해커톤 대회를 개최하여 우승자에게 상금을 지급하고 있습니다. 이번 대회에서는 우승자에게 지급되는 상금을 이전 대회와는 다르게 다음과 � programmers.co.kr 수식을 입력받아서, 연산자의 우선순위를 정하고 계산하는 문제이다 !! 수식 연산자는 더하기 빼기 곱하기의 세 가지만 있기 때문에 next_permutation 함수를 이용해서 우선순위를 이용했다 계산 과정은 N, N+1번째 피연산자를 N번째 연산자로 계산해서 N번째 피연산자로 교체하면 된다 후위연산식의 계산 과정은 생각이 났는데, 중위연산식이 생각이 잘 안..
-
Programmers [2020 카카오 인턴십]: 보석 쇼핑 풀이 및 코드Problem Solving/Programmers 2020. 8. 29. 16:51
https://programmers.co.kr/learn/courses/30/lessons/67258 코딩테스트 연습 - 보석 쇼핑 ["DIA", "RUBY", "RUBY", "DIA", "DIA", "EMERALD", "SAPPHIRE", "DIA"] [3, 7] programmers.co.kr 아래와 같이 진열된 보석 진열대에서 각 종류의 보석을 1개 이상 포함하는 가장 짧은 구간을 찾아내는 것 문제의 설명을 보고 DP인가? 라고 생각했는데 DP의 접근방식과 유사하지만 다르게 풀이했다 이러한 경우에서는 번호 3~7번까지의 구간이 R, D, D, E, S의 모든 종류를 포함하면서 가장 짧은 구간이다😉 1. 보석 이름은 string 형식으로 되어있기 때문에 stl map을 만들어 각각의 보석을 번호에 매..