본문 바로가기
728x90

TIL - 프로그래밍/Python 알고리즘198

[백준] 1697. 숨바꼭질 - Python https://www.acmicpc.net/problem/1697 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 생각 최소 거리 관련 문제니깐 que!! 코드 from collections import deque # 수빈 위치, 동생 위치 N, K = map(int,input().split()) # 거리 문제니깐 que def gogo(N,K): dist = [0] * (10 ** 5 + 1) deq = deque([N]) while deq: # 현 위치 c = deq.poplef.. 2022. 6. 3.
[프로그래머스] Lv.2 수식 최대화 - Python https://programmers.co.kr/learn/courses/30/lessons/67257 코딩테스트 연습 - 수식 최대화 IT 벤처 회사를 운영하고 있는 라이언은 매년 사내 해커톤 대회를 개최하여 우승자에게 상금을 지급하고 있습니다. 이번 대회에서는 우승자에게 지급되는 상금을 이전 대회와는 다르게 다음과 programmers.co.kr 코드 from itertools import permutations # 현 우선순위에 따라 연산하기 def money(prior,oper,num): for p in prior: while p in oper: i = oper.index(p) num[i] = str(eval(num[i] + p + num[i + 1])) num.pop(i + 1) oper.pop(.. 2022. 6. 2.
[프로그래머스] Lv.1 키패드 누르기 - Python https://programmers.co.kr/learn/courses/30/lessons/67256 코딩테스트 연습 - 키패드 누르기 [1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5] "right" "LRLLLRLLRRL" [7, 0, 8, 2, 8, 3, 1, 5, 7, 6, 2] "left" "LRLLRRLLLRR" [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] "right" "LLRLLRLLRL" programmers.co.kr 생각 키패드 간의 거리 구하는게 문제였다.. 처음에 3으로 나눈 나머지와 몫을 이용해서 풀었는데 그러면 코드가 눈에 잘 안들어와서 dictionary로 아예 만들어버림 자꾸 코드의 가독성이 떨어져서 답을 구하고도 다시 코드를 정리하게 된다... 고쳐야지.. 2022. 6. 2.
[백준] 2841. 외계인의 기타 연주 - Python https://www.acmicpc.net/problem/2841 2841번: 외계인의 기타 연주 첫째 줄에 멜로디에 포함되어 있는 음의 수 N과 한 줄에 있는 프렛의 수 P가 주어진다. (N ≤ 500,000, 2 ≤ P ≤ 300,000) 다음 N개 줄에는 멜로디의 한 음을 나타내는 두 정수가 주어진다. 첫 번째 정수 www.acmicpc.net 생각 코드 # 멜로디에 포함되어 있는 음의 수, 한 줄에 있는 프렛의 수 N, P = map(int,input().split()) # [줄의 번호, 그 줄에서 눌러야 하는 프렛의 번호], 행의 순서대로 연수 melody = [list(map(int,input().split())) for _ in range(N)] finger = [[] for _ in ran.. 2022. 6. 1.
[백준] 2644. 촌수계산 - Python 2644번: 촌수계산 (acmicpc.net) 2644번: 촌수계산 사람들은 1, 2, 3, …, n (1 ≤ n ≤ 100)의 연속된 번호로 각각 표시된다. 입력 파일의 첫째 줄에는 전체 사람의 수 n이 주어지고, 둘째 줄에는 촌수를 계산해야 하는 서로 다른 두 사람의 번호가 주어 www.acmicpc.net 코드 # 전체 사람의 수 n = int(input()) # 촌수를 계산해야 하는 서로 다른 두 사람의 번호 a,b = map(int,input().split()) # 부모 자식간의 관계의 개수 m m = int(input()) # 부모 자식간의 관계 relations = [list(map(int,input().split())) for _ in range(m)] # a와 b의 거리 계산이라 que .. 2022. 6. 1.
[백준] 21608. 상어 초등학교 - Python https://www.acmicpc.net/problem/21608 21608번: 상어 초등학교 상어 초등학교에는 교실이 하나 있고, 교실은 N×N 크기의 격자로 나타낼 수 있다. 학교에 다니는 학생의 수는 N2명이다. 오늘은 모든 학생의 자리를 정하는 날이다. 학생은 1번부터 N2번까지 번호 www.acmicpc.net 생각 코드 # 교실 크기 N*N N = int(input()) # 좋아하는 학생 리스트 # idx(0)은 idx(1~4) 좋아해 like = [list(map(int,input().split())) for _ in range(N**2)] # 교실 seat = [[0]*N for _ in range(N)] # 나의 자리는? for me in range(N**2): # 내가 앉을 자리 me.. 2022. 5. 31.
반응형