Problem Solving
-
[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:]+..
-
[BOJ]백준 23030번: 후다닥을 이겨 츄르를 받자!(C++)/DijkstraProblem Solving/BOJ(백준) 2021. 9. 16. 00:14
https://www.acmicpc.net/problem/23030 23030번: 후다다닥을 이겨 츄르를 받자! 쿠기는 평소 지하철 최단 경로를 탐색하여 소요 시간을 알려주는 '후다다닥' 어플을 사용 중이다. 그러나 쿠기는 걸음이 너무 느려서 '후다다닥'이 알려주는 경로를 따라가면 항상 지하철이 떠 www.acmicpc.net 좌표가 아닌 지하철 (노선, 역)의 정보를 가진 다익스트라 문제 유형 실제 그래프에 더 가까우니까 사실 다익스트라의 취지(?)에 더 적합한 문제 유형 같당 노선의 역 개수를 입력받아 이차원 벡터를 만들어준 뒤 환승역이 있는 곳에는 이어지는 역에 대한 정보를 넣어주었다 역 사이의 거리는 일정하므로 역 번호의 차를 이용했고 다익스트라 풀이를 위해 해당 노선에 존재하는 환승역들에 대해 ..
-
[SWEA] 2383번: 점심 식사시간(C++)/Bitmask, SimulationProblem Solving/SWEA 2021. 9. 14. 09:48
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5-BEE6AK0DFAVl&categoryId=AV5-BEE6AK0DFAVl&categoryType=CODE&problemTitle=%EB%AA%A8%EC%9D%98&orderBy=RECOMMEND_COUNT&selectCodeLang=ALL&select-1=&pageSize=10&pageIndex=2 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 계단의 수가 2개로 제한되어 있어서 비트마스킹을 이용해서 사람*계단에 매칭되는 경우의 수를 구해주었당 계단 입구에서 대기하는..
-
[SWEA] 5650번: 핀볼 게임(C++)/SimulationProblem Solving/SWEA 2021. 9. 14. 00:34
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWXRF8s6ezEDFAUo&categoryId=AWXRF8s6ezEDFAUo&categoryType=CODE&problemTitle=%EB%AA%A8%EC%9D%98&orderBy=RECOMMEND_COUNT&selectCodeLang=ALL&select-1=&pageSize=10&pageIndex=2 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 처음 코드가 계속 시간 초과가 나서 계속 고민했던 문제 장애물 블럭들에 대해서는 바뀔 방향들에 대해 배열을 만들어주고, 벽은..
-
[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 배열의 ..
-
[BOJ] 백준 5719번(C++): 거의 최단 경로/DijkstraProblem Solving/BOJ(백준) 2021. 9. 7. 00:01
https://www.acmicpc.net/problem/5719 5719번: 거의 최단 경로 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 장소의 수 N (2 ≤ N ≤ 500)과 도로의 수 M (1 ≤ M ≤ 104)가 주어진다. 장소는 0부터 N-1번까지 번호가 매겨져 있 www.acmicpc.net 추천받아서 풀게된 무시무시한 플레 다익스트라 문제 일반 최단경로를 제외했을 때의 '거의 최단경로'를 구하는 문제다 그래서 음 prev를 구해서 체크해준 다음 다익스트라를 다시 돌리면 되지 않을까?생각했는데 접근 방법은 맞았다 위의 그림처럼 다익스트라를 수행하면서 prev를 저장하고(최단경로가 두 개 이상 존재할 수 있기 때문에 배열로 저장) 해당 경로를 삭제 or 접..