Programming/Problem Solving(21)
-
[Programmers] 2020 카카오 인턴십 - 보석 쇼핑
https://programmers.co.kr/learn/courses/30/lessons/67258 코딩테스트 연습 - 보석 쇼핑 ["DIA", "RUBY", "RUBY", "DIA", "DIA", "EMERALD", "SAPPHIRE", "DIA"] [3, 7] programmers.co.kr 투포인터 문제였다. 1. 보석의 unique 개수를 구하려고 set에 넣어서 몇개인지 구함 2. 왼쪽부터 하나씩 옆으로 이동하면서 유니크 개수가 될때까지 right 포인터 이동 2-1. set에다가 한 개씩 더해줌 2-2. dict에 몇 개가 들어가있는지 표기 3. 2가 완료되면 left 한 칸 옆으로 이동. 3-1. 이때 dict에 1을 빼주고 0이면 set에서 빼줌 4. 3에서 left 이동했는데 4-1 유..
2021.08.21 -
[BOJ] 4811 알약 - Python
https://www.acmicpc.net/problem/4811 4811번: 알약 입력은 최대 1000개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄이며, 병에 들어있는 약의 개수 N ≤ 30 가 주어진다. 입력의 마지막 줄에는 0이 하나 주어진다. www.acmicpc.net DP 문제이다. 첨에는 생각이 나지않아 안풀렸지만 종이를 가져와서 적어보았다 먼저 W랑 H는 무조건 한 세트여야 하고, W가 한개가 나와야 H가 나올 수 있음을 기억하자. 2 개가 있으므로 2차원 배열을 선언했다. 세로 컬럼은 W, 가로 행은 H로 두고 각각의 숫자는 나온 개수라고 하자. 그러면 H가 1이고 W 가 0일 수는 없다. 그래서 먼저 W가 1일때를 보자 W H 0 1 2 3 0 0 1 1 x 2 3 여..
2021.08.15 -
[BOJ] 2307 도로검문 - Python
https://www.acmicpc.net/problem/2307 2307번: 도로검문 그림 1은 어떤 도시의 주요 지점과 그 지점들 간의 이동시간을 나타낸 그래프이다. 그래프의 노드는 주요 지점을 나타내고 두 지점을 연결한 도로(에지)에 표시된 수는 그 도로로 이동할 때 걸 www.acmicpc.net 전형적인 다익스트라 문제인줄 알았지만.. 아니었다. 다익스트라에서 한번 더 생각을 해 줘야 하는 문제다. 처음에는 import heapq N, M = map(int, input().split()) arr = [list() for _ in range(N+1)] one = [] for i in range(M): a,b,t = map(int, input().split()) arr[a].append((b,t))..
2021.08.05 -
[BOJ] 8972 미친 아두이노 - Python
https://www.acmicpc.net/problem/8972 8972번: 미친 아두이노 요즘 종수는 아두이노를 이용해 "Robots"이라는 게임을 만들었다. 종수는 아두이노 한대를 조정하며, 미친 아두이노를 피해다녀야 한다. 미친 아두이노는 종수의 아두이노를 향해 점점 다가온다. www.acmicpc.net 이문제는 빡 구현 문제이다. 약간 삼성에 나오기 좋을 법한 문제. 말 그대로 하나하나 구현해가면 된다. 구현해간 순서 1. 먼저 dx, dy를 선언하고 그림에 맞게 방향을 준다. 2. 한 좌표에 아두이노가 몇개 있는지를 보여주는 dictionary를 선언 3. 아두이노들이 실제로 위치하는 좌표 list 4. 2번이랑 3번은 싱크를 계속 맞춰줘야 한다. 3 안에 위치하는 아두이노가 있는데 2에는 ..
2021.08.02 -
[BOJ] 3107 IPv6 - Python
https://www.acmicpc.net/problem/3107 3107번: IPv6 첫째 줄에 올바른 IPv6 주소가 주어진다. 이 주소는 최대 39글자이다. 또한, 주소는 숫자 0-9, 알파벳 소문자 a-f, 콜론 :으로만 이루어져 있다. www.acmicpc.net 와.. 몇번이나 제출했는지 모르겠다 ㅋㅋ 진짜 계속 틀리길래.. 질문답변 게시판을 봤다. 0001:0002:0003:0004:0005:0006:0007:0000 -> 1:2:3:4:5:6:7:: 이렇게 바꿀 수 있다는걸 보고.. 하,..... 내 코드에서는 그 부분을 처리하고 있지 않아서.. 그냥 어거지로 맞추긴 했는데.. 쓰읍.. 내생각엔 별로 안좋은문제같다. li = [-1] * 39 li[4] = li[9] = li[14] = l..
2021.08.02 -
[Programmers] 정수 삼각형
https://programmers.co.kr/learn/courses/30/lessons/43105 코딩테스트 연습 - 정수 삼각형 [[7], [3, 8], [8, 1, 0], [2, 7, 4, 4], [4, 5, 2, 6, 5]] 30 programmers.co.kr 전형적인 DP 문제다. 왜 이문제가 level 3인지는 모르겠으나.. def solution(triangle): answer = 0 dp = [[0]*len(triangle) for _ in range(len(triangle))] dp[0][0] = triangle[0][0] for i in range(1, len(triangle)): triangle[i][0] += triangle[i-1][0] triangle[i][len(triang..
2021.07.29