Problem Solving/Programmers
-
[Programmers]괄호 회전하기(Python)/StackProblem Solving/Programmers 2021. 9. 26. 22:43
https://programmers.co.kr/learn/courses/30/lessons/76502# 코딩테스트 연습 - 괄호 회전하기 programmers.co.kr def parenthesesString(p): s=[] v={'[':0, '{':1, '(':2, ']':0, '}':1, ')':2} for k in p: if k in ['[', '{', '(']: s.append(v[k]) else: if len(s)!=0 and s[-1]==v[k]: s.pop() else: return 0 if len(s)!=0: return 0 return 1 def solution(s): answer = 0 for i in range(len(s)): answer+=parenthesesString(s[i:]+..
-
[Programmers]위클리 챌린지 6주차: 복서 정렬하기(Python)/SortingProblem Solving/Programmers 2021. 9. 12. 13:11
https://programmers.co.kr/learn/courses/30/lessons/85002 코딩테스트 연습 - 6주차 복서 선수들의 몸무게 weights와, 복서 선수들의 전적을 나타내는 head2head가 매개변수로 주어집니다. 복서 선수들의 번호를 다음과 같은 순서로 정렬한 후 return 하도록 solution 함수를 완성해주세요 programmers.co.kr 파이썬의 람다를 이용해서 정렬을 간단하게 구현 파이썬의 sort함수는 C++과 다르게 기본적으로 stable sort를 지원한다 def solution(weights, head2head): answer = [] result=[[0, 0, weights[i], i+1] for i in range(len(weights))] for i..
-
[Programmers]다단계 칫솔 판매(Python)/TreeProblem Solving/Programmers 2021. 9. 12. 01:50
https://programmers.co.kr/learn/courses/30/lessons/77486 코딩테스트 연습 - 다단계 칫솔 판매 민호는 다단계 조직을 이용하여 칫솔을 판매하고 있습니다. 판매원이 칫솔을 판매하면 그 이익이 피라미드 조직을 타고 조금씩 분배되는 형태의 판매망입니다. 어느정도 판매가 이루어진 후, programmers.co.kr 새로 가입한 알고리즘 스터디에서 풀었던 문제 문자열을 이용한 저장을 구현할 때 딕셔너리를 사용하는게 많이 편해졌다 이 문제도 풀다풀다 코드가 엄청 길어졌지만 최종적으로는 엄청나게 짧아진 문제 이런 식으로 각 child는 모든 anscestor에게 수익을 분배하게 되는데, 각 노드가 얻게 되는 수익의 총합을 구하는 문제였다 트리를 제대로 이해하고 있으면 풀 ..
-
[Programmers]2019 카카오 개발자 겨울 인턴십: 불량 사용자(Python)/BacktrackingProblem Solving/Programmers 2021. 9. 7. 22:57
https://programmers.co.kr/learn/courses/30/lessons/64064 코딩테스트 연습 - 불량 사용자 개발팀 내에서 이벤트 개발을 담당하고 있는 "무지"는 최근 진행된 카카오이모티콘 이벤트에 비정상적인 방법으로 당첨을 시도한 응모자들을 발견하였습니다. 이런 응모자들을 따로 모아 불량 programmers.co.kr 문자열을 파싱해서 제재 아이디에 해당하는 후보 리스트를 만들고, 조합을 구하는 문제이다 큰 문자열 연산이 필요 없어서 C로 구현해도 되겠다는 생각을 했다 나는 banned_id 배열을 탐색하면서 각각의 id에 매칭되는 user_id의 index를 담은 배열을 만들고, 해당 배열을 백트래킹으로 탐색하면서 중복되지 않는 경우의 수를 구해줬다. user_id 배열의 ..
-
[Programmers]프로그래머스 위장(Python)/HashingProblem Solving/Programmers 2021. 9. 1. 18:44
https://programmers.co.kr/learn/courses/30/lessons/42578 코딩테스트 연습 - 위장 programmers.co.kr 수학스러웠던 해싱 문제 입력에 대해 의상별로 분류하고, 해당 분류들로 나올 수 있는 조합의 개수를 구하는 문제였는데 # 틀린 풀이 from itertools import combinations def solution(clothes): answer = len(clothes) d=dict() for c in clothes: if d.get(c[1])==None: d[c[1]]=1 else: d[c[1]]+=1 keys = list(d.keys()) for i in range(2, len(keys)+1): comb = list(combinations(k..
-
[Programmers]완주하지 못한 선수(Python)/HashingProblem Solving/Programmers 2021. 8. 31. 19:58
https://programmers.co.kr/learn/courses/30/lessons/42576 코딩테스트 연습 - 완주하지 못한 선수 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수 programmers.co.kr 요즘 코딩테스트에서 해싱을 이용한 문제가 많이 나오는 추세라서 해싱 분류 문제 전부 풀어보기 도전 🔥 주로 key, value 쌍으로 저장하는 문제(key가 string인 경우가 많음)에서 자주 출제되고 선형 list로 관리하게 되면 시간초과가 발생할 수 있다 def solution(participant, completion): d=dict(..
-
[Programmers] 2021 카카오 채용연계형 인턴십: 표 편집(Python)/HashingProblem Solving/Programmers 2021. 7. 18. 18:38
https://programmers.co.kr/learn/courses/30/lessons/81303 코딩테스트 연습 - 표 편집 8 2 ["D 2","C","U 3","C","D 4","C","U 2","Z","Z"] "OOOOXOOO" 8 2 ["D 2","C","U 3","C","D 4","C","U 2","Z","Z","U 1","C"] "OOXOXOOO" programmers.co.kr 해싱을 이용한 문제가 종종 나오는 추세인듯 .... ㅠ 실제 코테에서는 뭔가 해싱을 써야되지 않을까?라는 생각만 하고 어려워보여서 다른 문제 풀었었는데 실제로 풀어보니 생각만큼 어렵진 않았다 연습할 때 정확성/효율성이 나뉘어져 있는 문제는 우선 러프하게 정확성만 통과하게 짜본 뒤 효율성 풀이로 고치는 편이다 그래..
-
[Programmers]2021 카카오 채용연계형 인턴십: 거리두기 확인하기(Python)/BFSProblem Solving/Programmers 2021. 7. 13. 22:53
https://programmers.co.kr/learn/courses/30/lessons/81302?language=python3 코딩테스트 연습 - 거리두기 확인하기 [["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 오랜만에 풀어본 파이썬 BFS 문제 아직은 C가 편하지만 파..