본문 바로가기

알고리즘

(158)
백준) 잃어버린 괄호-python https://www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net a = input().split('-') num = [] for i in a: cnt = 0 s = i.split('+') for j in s: cnt += int(j) num.append(cnt) n = num[0] for i in range(1, len(num)): n -= num[i] print(n) 사실 이문제에서 시간이 좀 오래 걸렸다. 가장먼저 괄호라는 기능을 어떻게 구현할 것인가..
프로그래머스) 소수 찾기-python https://school.programmers.co.kr/learn/courses/30/lessons/42839 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr from itertools import permutations def isTrue(n): for i in range(2,n): if n % i == 0: return False return True def solution(numbers): answer = 0 arr = list(numbers) check = [] for i in range(1,len(numbers)+1): for j in perm..
프로그래머스) 2 x n 타일링-python https://school.programmers.co.kr/learn/courses/30/lessons/12900 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 사실 문제를 어떻게 풀어야할지 감도 잡히지 않았다. 그리디, DFS, BFS 스택,큐, 정렬... 그리고 경우의수를 생각했을 때 절대 내가 알고있는 알고리즘으로 풀 수 없다고 생각했고 검색을 해보았다. def solution(n): answer = 0 arr = [0] * (n + 1) arr[1] = 1 arr[2] = 2 for i in range(3,n+1): arr[i] = (arr[i-1..
프로그래머스) 방문 길이-python https://school.programmers.co.kr/learn/courses/30/lessons/49994 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제는 간단하다 좌표평면 위에 걸어간 길이는 구하는데, 중복되지 않은 길을 구하는 것이다. 예를 들어 5,5 -> 5,6 -> 5,5로 갔더라면 걸어간 총 길이는 2(처음 시작은 5,5)이지만 중복되지 않은 길은 1이다. def solution(dirs): answer = 0 visit = [] location =[5,5] graph = [[0 for j in range(11) ]for _ in ..
프로그래머스) 할인행사-python https://school.programmers.co.kr/learn/courses/30/lessons/131127 문제는 이해하기 좀 쉬웠다. 다만 구현이 문제였다. discount의 갯수가 10만개라 이중 반복문은 사용할 수 없다. 때문에 for문 하나로 끝냈어야 하는데, 거기서 1시간은 해맸었던 것 같았다. import math from collections import Counter def solution(want, number, discount): answer = 0 dic = {} for i in range(len(want)): dic[want[i]] = number[i] dic_count = Counter(dic) for i in range(0,len(discount) - 9): a = di..
프로그래머스) 스킬트리-python https://school.programmers.co.kr/learn/courses/30/lessons/49993 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(skill, skill_trees): answer = 0 for i in range(len(skill_trees)): dic = {} isTrue = True for j in range(len(skill)): dic[skill[j]] = 99 if skill[j] in skill_trees[i]: dic[skill[j]] = skill_trees[i].index(skill[..
프로그래머스)주차 요금 계산-python https://school.programmers.co.kr/learn/courses/30/lessons/92341 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr import datetime import math def solution(fees, records): answer = [] dic={} dic2={} arr = [] for i in range(len(records)): a = list(records[i].split()) if a[1] not in dic: dic[a[1]] = [a[0],a[2]] else: if a[2] == 'OUT': hm ..
프로그래머스) 압축-python https://school.programmers.co.kr/learn/courses/30/lessons/17684 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(msg): answer = [] number = 27 alpha = { 'A':1,'B':2,'C':3,'D':4,'E':5,'F':6,'G':7,'H':8,'I':9,'J':10,'K':11,'L':12,'M':13,'N':14,'O':15,'P':16,'Q':17,'R':18,'S':19,'T':20,'U':21,'V':22,'W':23,'X':24,'Y':25,'Z':..