algorithm/python 24

프로그래머스/스택,큐/다리를 지나는 트럭

https://programmers.co.kr/learn/courses/30/lessons/42583 문제 조건 +) 문제에 빠져있는 조건이 있어 계속 틀렸다. "트럭은 1초 다리 1칸씩 전진한다"는 조건을 추가해야 한다. from collections import deque def solution(bridge_length, weight, truck_weights): answer = 0 truck_weights = deque(truck_weights) inBridge = deque([0]*bridge_length) weight_sum = 0 while truck_weights or sum(inBridge) > 0: answer += 1 getOut = inBridge.popleft() weight_sum..

algorithm/python 2022.06.21

[python] 최대 int 범위

Python 2: sys 패키지에서 max값을 제공한다. sys.maxint로 정수 최대값을 구할 수 있다. 이 최대값을 초과할 시 int->long으로 자동전환 된다. Python 3: python3에서 int와 long의 구분이 없어져 int은 unbound다. 만약 word size를 구하고 싶다면 sys.maxsize를 사용한다. PEP 237: Essentially, long renamed to int. That is, there is only one built-in integral type, named int; but it behaves mostly like the old long type. 결론: Python에서 int의 범위는 고려할 필요가 없다. 출처: https://stackoverfl..

algorithm/python 2022.03.27

codility/lesson5/prefix sums/passingCars

https://app.codility.com/programmers/lessons/5-prefix_sums/passing_cars/ 코딜리티는 (1) 시간제한이 있어 늦장부리지 않고 풀 수 있어 좋다. (2) 테스트케이스도 정확도, 성능측정으로 분리되어 있으며 (3) 화면녹화도 제공하고 (4) 내 소스 시간복잡도도 계산해 주고 (5) 문제도 영어라 가끔 영어문제를 내는 큰 회사들 대비하기 좋다. 나는 성능이 구린 풀이를 잘 하기 때문에 코딜리티로 점검해 보았다. 곧이곧대로 풀지말고 그 안의 룰을 찾아내자 def solution(A): west_sum = 0 len_A = len(A) cnt_one = sum(A) for i in range(len_A): if A[i] == 0: west_sum += cnt..

algorithm/python 2022.02.14

백준/2108/통계학

시간초과로 여러번 통과하지 못했던 문제이다. 로직이 맞는 것 같은데 시간초과 뜬다면 input() 을 의심해보아야 한다. 몇 번의 input을 더 받아야하는지 알고 있다면 (대부분의 문제의 첫 값은 for문 돌아야 할 횟수를 알려준다) 다음을 활용하도록 하자. input() -> sys.stdin.readline() 풀이) #!/usr/bin/env python # -*- coding: utf-8 -*- import sys def main(n, input_num): # 산술평균 : N개의 수들의 합을 N으로 나눈 값 print(int(round(sum(input_num) / n))) # 중앙값 : N개의 수들을 증가하는 순서로 나열했을 경우 그 중앙에 위치하는 값 sorted_num = sorted(in..

algorithm/python 2021.10.27

hackerrank/Data Structures/Arrays/Dynamic Array

https://www.hackerrank.com/challenges/dynamic-array/problem 식도 다 세워준 문제인데 지문 이해가 좀 어려웠다. input을 아래와 같이 이해하면 쉽게 해결된다. 2 5 // n q 1 0 5 // query_type x y 1 1 7 1 0 3 2 1 0 2 1 1 lastAnswer를 print하는데에 for문 안에서 그때그때 하는 것이 아니라 main 로직에서 return 된 result를 string으로 mapping 시킨 후 print 해주기에 나는 lastAnswer를 list에 담아 반환해주면 된다. 2차원 배열을 이해하는 문제이다. #!/bin/python3 import math import os import random import re im..

algorithm/python 2021.07.18

카카오블라인드/2020/가사검색

프로그래머스 이용 : https://programmers.co.kr/learn/courses/30/lessons/60060 처음에 for문 2개로 풀었더니 효율성 1,2,3번을 통과하지 못한다. 하위 소스가 그 내용이다. def solution(words, queries): result = [] """ queries 총 문자 개수, 맞춰야하는 문자 개수 맞으면 ans += 1 """ for q in queries: ans = 0 total_len = len(q) key = q.replace("?","") key_idx = q.find(key) for word in words: if len(word) != total_len: continue if key == "": ans+=1 continue idx = ..

algorithm/python 2020.07.27