[프로그래머스] 도넛과 막대 그래프 (python)
·
Algorithm/Python
1️⃣ 문제https://school.programmers.co.kr/learn/courses/30/lessons/2587112️⃣ 필요한 개념차수 기반 문제 판별하기입력 크기 크다 → 탐색 괜찮나?문제 설명이 구조적 정의(사이클, 끝점, 교차점) → 차수로 풀 수 있나?출력이 개수만 요구됨 → 구체 탐색 필요 없네?3️⃣ 풀이def solution(edges): answer = [] in_out_list = [[0,0] for _ in range(1000000+1)] if (len(edges) == 1): return 1, 1, 0, 0 for edge in edges: a,b = edge in_out_list[a][1] += 1 ..
[프로그래머스] 숫자 문자열과 영단어 (python)
·
Algorithm/Python
1️⃣ 문제https://school.programmers.co.kr/learn/courses/30/lessons/81301 2️⃣ 기억해야 했던 개념들a.isdigit() : digit인지 판단하는 거 까먹어서 함수로 구현함 (기억하기) 3️⃣ 풀이 과정제한 시간 10초 -> 한번만 N의 복잡도면 충분히 가능하겠다 생각 (단순 구현)순차적으로 문자열 파싱함 4️⃣ 코드def is_num(a):if (a == "0" or a == "1" or a == "2" or a == "3" or a =="4" or a == "5" or a == "6" or a == "7" or a == "8" or a == "9"):return Trueelse:return Falsedef solution(s):answer = ""..
[알고리즘 스터디] 백준 2164번 Python 풀이 - 카드2 (연산 복잡도, deque, 식 세우기)
·
Algorithm/Python
# 문제 https://www.acmicpc.net/problem/2164 2164번: 카드2 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 www.acmicpc.net # 시도 1 (실패 - 시간초과) number = int(input()) array = [i+1 for i in range(number)] length = number while (len(array) != 1): del array[0] item = array.pop(0) array.append(item) print(array) print(array[0]) array의 pop 연산자와 de..
[알고리즘 스터디] 백준 2798번 Python 풀이 - 블랙잭
·
Algorithm/Python
# 문제 https://www.acmicpc.net/problem/2798 2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net # 코드 풀이 def solve(): n, m = map(int, input().split()) input_list = [] sum_list = [] input_list = list(map(int, input().split())) for i in range(2, n): for j in range(1, i): for k in range(0, j): sum =..
[알고리즘 스터디] 백준 1259번 Python 풀이 - 팰린드롬수
·
Algorithm/Python
# 문제 - 팰린드롬수 https://www.acmicpc.net/problem/1259 1259번: 팰린드롬수 입력은 여러 개의 테스트 케이스로 이루어져 있으며, 각 줄마다 1 이상 99999 이하의 정수가 주어진다. 입력의 마지막 줄에는 0이 주어지며, 이 줄은 문제에 포함되지 않는다. www.acmicpc.net # 접근 팰린드롬수 - 뒤에서부터 읽어도 똑같은 단어 앞에서 넣고 뒤부터 뺐을 때 원래 string과 같으면 팰린드롬수라고 할 수 있겠다. # 코드 while(True): list = [] pop_string = '' string = input() if (string == '0'): break for ch in string: list.append(ch) for _ in range(len(l..
[알고리즘 스터디] 백준 10773번 Python 풀이 - list 자료형 다루기
·
Algorithm/Python
# 문제 https://www.acmicpc.net/problem/10773 10773번: 제로 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경 www.acmicpc.net # 접근 list에 넣고 빼는 것을 조건에 따라 반복 # 작성 코드 num = int(input()) num_list = [] sum = 0 for _ in range(num): input_num = int(input()) if (input_num == 0): del num_list[-1] else: num_list.append(input_num) for..
[알고리즘 스터디] 백준 9012번 Python 풀이 - list()
·
Algorithm/Python
# 문제 https://www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net # 고민 ()는 VPS. ( 를 +1 이라 했을 때 ) -1이라 하고 총 합이 0이 되면 되지 않을까? 또, 전체 count 값이 음수가 되면 VPS가 될 수 없다 -> break하고 False 출력 # 작성 코드 num = int(input()) for _ in range(num): string = input() split_list = list(string..
[python] List 초기화 방법
·
Algorithm/Python
리스트 초기화 아래 두 가지 방법 중 하나로 초기화하면 된다. 1) list = [] #list를 처음 선언할 때처럼 빈 리스트를 할당. 2) list.clear() method 사용
[python] list 자료형 - insert, remove
·
Algorithm/Python
1. 리스트에 요소 삽입하기 - insert insert(삽입할 위치 index, 삽입할 요소) array = [1,2,3,4,5] array.insert(0, 6) //array = [6,1,2,3,4,5] 2. 리스트에서 요소 삭제하기 - remove array.remove(삭제할 요소) //index가 들어가지 않음을 주의. 첫 번째로 나오는 element만 삭제함. array = [6,1,2,3,4,5,6] array.remove(6) //array = [1,2,3,4,5,6]