🌿Algorithm 126

✏️ [백준 6588] 골드바흐의 추측

1. 문제 www.acmicpc.net/problem/6588 6588번: 골드바흐의 추측 각 테스트 케이스에 대해서, n = a + b 형태로 출력한다. 이때, a와 b는 홀수 소수이다. 숫자와 연산자는 공백 하나로 구분되어져 있다. 만약, n을 만들 수 있는 방법이 여러 가지라면, b-a가 가장 큰 www.acmicpc.net 2. 접근 방법 예전에 했던 에라토스테네스의 체를 사용해서 풀었따. 시간 초과가 날 거 같아서 그냥 갯수만큼 리스트로 미리 소수를 구해놓고 a-b가 가장 큰 쌍을 구해야하니까, 결국 a가 가장 크고 b가 가장 큰 값이면 되니까 가장 작은 수부터 확인해서 a+b가 N이 될 때 둘 다 소수인지 확인하고 맞으면 바로 프린트하고 끄읕 3. 코드 python wrong_msg = "Go..

Algorithm/Python 2021.05.03

✏️ [스택/큐] 다리를 지나는 트럭

1. 문제 programmers.co.kr/learn/courses/30/lessons/42583 코딩테스트 연습 - 다리를 지나는 트럭 트럭 여러 대가 강을 가로지르는 일 차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 트럭은 1초에 1만큼 움직이며, 다리 길이 programmers.co.kr 2. 접근 방법 스택으로 접근했습니당 3. 코드 python def solution(bridge_length, weight, truck_weights): answer = 0 bridge = [0]*bridge_length while bridge: answer += 1 bridge.pop(0) if truck_weights: now = truck_we..

Algorithm/Python 2021.05.02

✏️ [해시] 베스트앨범

1. 문제 programmers.co.kr/learn/courses/30/lessons/42579 코딩테스트 연습 - 베스트앨범 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 programmers.co.kr 2. 접근 방법 해시 3. 코드 python def solution(genres, plays): answer = [] genres_idx = {} genres_cnt = {} for i in range(len(genres)): if genres[i] in genres_cnt.keys(): genres_cnt[genres[i]] += plays[i] genres_i..

Algorithm/Python 2021.05.01

✏️ [해시] 위장

1. 문제 programmers.co.kr/learn/courses/30/lessons/42578 코딩테스트 연습 - 위장 programmers.co.kr 2. 접근 방법 해시 3. 코드 python def solution(clothes): answer = 1 hash = {} for val, key in clothes: if key in hash.keys(): hash[key].append(val) else: hash[key] = [val] for key in hash.keys(): answer *= (len(hash[key])+1) answer -= 1 return answer 4. 마치며 해시를 계속 푸니 약간 손에 익는 듯 합니다요 참고로 저는 key를 기준으로 for문을 돌렸는ㄷㅔ 다른 사람들 ..

Algorithm/Python 2021.05.01

✏️ [해시] 전화번호 목록

1. 문제 programmers.co.kr/learn/courses/30/lessons/42577 코딩테스트 연습 - 전화번호 목록 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조 programmers.co.kr 2. 접근 방법 해시로 접근하지 않으면 시간초과가 납니다요 3. 코드 python def solution(phone_book): answer = True hash = {} for phone in phone_book: hash[phone] = 1 for phone in phone_book: temp = "" for num in phone: temp += num i..

Algorithm/Python 2021.04.30

✏️ [해시] 완주하지 못한 선수

1. 문제 programmers.co.kr/learn/courses/30/lessons/42576 코딩테스트 연습 - 완주하지 못한 선수 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수 programmers.co.kr 2. 접근 방법 해시로 접근을 해보았습니다. 1. participant의 이름들을 key값으로 갖는 hash를 만들어서 해당 key의 value는 해당 이름을 가진 사람들의 숫자입니다. (동명이인의 경우 +a, 아닌 경우 1) 2. completion을 반복하여 동명이인의 경우-1, 아닌 경우 해당 key를 완전히 빼버립니다. 3. 남은 key를..

Algorithm/Python 2021.04.30

✏️ [백준 11399] ATM

1. 문제 www.acmicpc.net/problem/11399 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net 2. 접근 방법 합을 최소로 만들기 위해서는 결국 가장 적은 수가 더 많이 더해져야하니까 정렬한 후에 더해주면 된다. 3. 코드 python N = int(input()) money = list(map(int, input().split())) money.sort() answer = 0 for i in range(N): answer += (money[i]*(N-i)) print(answer) 4. 마치며 .

Algorithm/Python 2021.04.28

✏️ [백준 1932] 정수 삼각형

1. 문제 www.acmicpc.net/problem/1932 1932번: 정수 삼각형 첫째 줄에 삼각형의 크기 n(1 ≤ n ≤ 500)이 주어지고, 둘째 줄부터 n+1번째 줄까지 정수 삼각형이 주어진다. www.acmicpc.net 2. 접근 방법 dp문제다. 삼각형이 아니라 2차 배열로 생각해보면 input의 경우 0 0 0 0 0 0 0 0 0 0 이런 형상이다. 그럼 얘를 좌표로 나타내면 ([열(x), 행(y)]으로 나타냈습니다.) [0, 0] [0, 1] [1, 1] [0, 2] [1, 2] [2, 2] [0, 3] [1, 3] [2, 3] [3, 3] [0, 1]까지의 합은 [0, 0]과 [0, 1]을 더한 값 [1, 2]까지의 합은 [0, 1]과 [1, 1] 둘 중 더 큰 값과 [1, 2]..

Algorithm/Python 2021.04.27

✏️ [swea 5650] 핀볼 게임

1. 문제 swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWXRF8s6ezEDFAUo SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 2. 접근 방법 시뮬이라 문제에 나온대로 진행하면 된다. 유의해야 할 점은 1. 웜홀이나 블랙홀을 만나지 않는 한 현재 방향을 유지하면서 계속 직진 2. 핀볼이 웜홀에 빠지면 동일한 숫자를 가진 다른 반대편 웜홀로 빠져나옴. 진행 방향 유지 3. 블랙홀 만나면 끝 (return) 4. 처음 위치로 돌아오면 끝(return) 5. 점수 = 벽이나 블록에 부딪힌 횟수 (웜홀 통과는 점수에 반영되지 않는다)..

Algorithm/Python 2021.04.24