목록python (182)
rose_brown
1. 문제https://school.programmers.co.kr/learn/courses/15008/lessons/121685 2. 코드python 1def back(gen, x): child = ["RR", "Rr","Rr","rr"] if gen == 1: return "Rr" parent = back(gen-1, x // 4) if parent == "Rr": return child[x%4] else: return parentdef solution(queries): answer = [] for query in queries: n, p = query result = back(n,p-1) answer.append(re..
1. 문제https://school.programmers.co.kr/learn/courses/15008/lessons/121684 2. 코드python 1from itertools import combinations, permutationsdef solution(ability): answer = 0 people, sports_size = len(ability), len(ability[0]) scores = [i for i in range(people)] sports = [i for i in range(sports_size)] for i in combinations(scores, sports_size): for j in permutations(sports, s..
1. 문제https://school.programmers.co.kr/learn/courses/15008/lessons/121683 2. 코드python 1def solution(input_string): d = {} prev = None for x in input_string: if x in d and prev != x: d[x] = True elif x not in d:d[x] = False prev = x answer = [k if d[k] else '' for k in d] return ''.join(sorted(answer)) or "N"풀이d - 문자별 그룹 단절 여부 판별, prev - 이전 문자 저장이전에 나온적..
1. 문제https://school.programmers.co.kr/learn/courses/30/lessons/92345 2. 코드python 1def solution(board, aloc, bloc): n, m = len(board), len(board[0]) move = [(-1,0), (0,1), (1,0), (0,-1)] inside = lambda x, y: 0 풀이n, m으로 board의 가로 세로 값 저장move - 상하좌우 이동 리스트inside - (x, y)가 보드 안에 있는지 판단DFS 함수step - 현재 까지의 이동 횟수(짝수면 A차례, 홀수면 B의 차례)seen - 지나간 발판의 위치를 저장survive - 이동가능한 경우가 있는지 여부must_lose - 모든..
1. 문제https://school.programmers.co.kr/learn/courses/30/lessons/92344 2. 코드python 1def solution(board, skill): answer = 0 temp = [[0] * (len(board[0]) + 1) for _ in range(len(board) + 1)] for attack_type, r1, c1, r2, c2, degree in skill: degree *= -1 if attack_type == 1 else 1 temp[r1][c1] += degree temp[r1][c2+1] += -degree temp[r2+1][c1] += -degree te..
1. 문제https://school.programmers.co.kr/learn/courses/30/lessons/92343 2. 코드python 1from collections import defaultdictdef solution(info, edges): answer = [] graph = defaultdict(list) for parent, child in edges: graph[parent].append(child) def dfs(current, sheep, wolf, possible_path): sheep += info[current] ^ 1 wolf += info[current] if sheep ..
1. 문제https://school.programmers.co.kr/learn/courses/30/lessons/92342 2. 코드python 1from itertools import combinations_with_replacement as cwrdef solution(n, info): answer = [-1] max_gap = -1 for shot in cwr(range(11), n): case = [0] * 11 for i in shot: case[10-i] += 1 apeach, lion = 0, 0 for idx in range(11): ..
1. 문제https://school.programmers.co.kr/learn/courses/30/lessons/92341 2. 코드python 1from math import ceildef to_min(first, second): fh, fm = map(int, first.split(':')) sh, sm = map(int, second.split(':')) return (sh*60 + sm) - (fh*60 + fm) def solution(fees, records): answer = [] dt, df, ut, uf = fees check, check_time = dict(), dict() for record in records: ..
1. 문제https://school.programmers.co.kr/learn/courses/30/lessons/92335 2. 코드python 1def change(n, k): ret = [] while n > 0: n, x = divmod(n, k) ret.append(str(x)) return ''.join(ret[::-1]) def is_prime(n): if n 풀이진수변환 하는 함수 구현소수 판별하는 함수 구현k진수로 변환한 수에 ‘0’을 기준으로 split한 값들이 소수인지 판별최종값 반환 3. 메모0을 기준으로 split 함(글이 길어서 헷갈릴 수도 있지만 별거아님)문제대로 k진수와 소수인지 판별하는 코드 작성하면 쉽게 문제 풀 수 있음
1. 문제https://school.programmers.co.kr/learn/courses/30/lessons/92334 2. 코드python 1def solution(id_list, report, k): answer = [0] * len(id_list) reports = {uid:0 for uid in id_list} for r in set(report): reports[r.split()[1]] += 1 for r in set(report): if reports[r.split()[1]] >= k: answer[id_list.index(r.split()[0])] += 1 return answer풀이answer - 각 ..