[프로그래머스] 큰 수 만들기 풀이
1. 문제
https://programmers.co.kr/learn/courses/30/lessons/42883
2. 풀이
2.1. 시간 초과 풀이
만들어야 하는 자리 수는 number의 길이 - 빼야할 숫자 k 입니다.
숫자를 결정할 때 가장 높은 자리 숫자부터 정해야 합니다.
높은 자리 숫자는 현재 string 에서 최소한 빼야할 숫자 k - 1개 만큼이 뒤에 포함되어 있어야 합니다.
예를 들어, ‘2223454’ 에서 4개의 숫자를 빼야 되면 자리 수는 3자리이고, 첫 숫자는 뒤에 최소한 4 - 1 = 3개 만큼의 숫자 ‘454’ 앞에 있어야 하기 때문에 ‘222...
[프로그래머스] 피보나치 수 풀이
1. 문제
https://programmers.co.kr/learn/courses/30/lessons/12945
2. 풀이
배열을 하나씩 증가시키면서 이전 수 2개를 더해주고 return 해주는 간단한 문제입니다.
def solution(n):
F = [0, 1]
for i in range(2, n+1):
F.append((F[i-1] + F[i-2]) % 1234567)
return F[n]
[프로그래머스] 전화번호 목록 풀이
1. 문제
https://programmers.co.kr/learn/courses/30/lessons/42577
2. 풀이
2.1. 딕셔너리(해쉬)를 이용한 풀이
prefix_dic이라는 dictionary 에 모든 단어를 집어 넣습니다.
for문을 돌면서 문자 길이 -1 까지 체크를 하면서 dictionary에 해당 문자열이 존재하는지 확인합니다.
문자열의 길이가 20이 최대이기 때문에 속도에 문제가 없는 소스코드입니다.
def solution(phone_book):
answer = True
prefix_dic = {}
for x in phone_book:
...
What is mkdir -p option on linux?
When we use mkdir -p option, system automatically creates an intermediate directory that does not exist. If you use -p, you don’t need to make intermediate directory. Intermediate directories are created automatically. This is very useful.
# below command is not success because there is no middle directory(f1/f2)
$ mkdir f1/f2/f3
mkdir: f1/f2:...
[프로그래머스] 더 맵게
1. 문제
https://programmers.co.kr/learn/courses/30/lessons/42626
2. 풀이
2.1. PriorityQueue를 이용한 시간초과 풀이
PriorityQueue 를 사용하여 문제를 해결한 풀이입니다.
문제 해결 방법은 아래와 같습니다.
PriorityQueue 에 남은 원소가 2개 이상일 경우에 계속해서 로직을 수행합니다.
가장 적은 2개를 뽑아서 2개 다 0이 아닌지 확인하고, 다음 값을 PriorityQueue에 집어 넣습니다.
while 문이 끝나고 나서 P...
[프로그래머스] 프린터 풀이
1. 문제
https://programmers.co.kr/learn/courses/30/lessons/42586
2. 풀이
2.1. 덱을 이용한 풀이
1~9 까지 우선순위마다 값을 다르게 넣기 위한 덱 배열을 생성합니다. 이후 우선순위에 따라서 숫자를 집어 넣습니다.
우선순위 높은 덱부터 살펴봅니다. 이전에 살펴본 요소를 last_idx 로 표기해놓고, 해당 idx 이후에 실행될 요소를 찾습니다.
이후 큐에 있는 요소들을 순서대로 정답 배열에 집어 넣습니다.
정답 배열에서 location에 해당하는 요소를 찾아 정답으로 출력합니다.
from collections import deque
...
[프로그래머스] 기능개발
1. 문제
https://programmers.co.kr/learn/courses/30/lessons/42586
2. 풀이
2.1. 내 풀이
각 프로세스마다 필요한 날을 올림 함수를 이용하여 구해줍니다.
이후로 배열을 하나하나씩 인덱스를 늘려가면서 시작 인덱스부터 뒤 인덱스에 같거나 작은 숫자가 올 때까지 같이 수행된 숫자로 여기고 정답에 집어 넣습니다.
import math
def solution(progresses, speeds):
need_day = [-1] * len(progresses)
for i in range(len(progresses)):
need_da...
[백준] 10830번 _ 행렬 제곱
1. 문제
https://www.acmicpc.net/problem/10830
2. 풀이
2.1. int 이중 포인터를 이용한 문제 풀이
행렬의 제곱수를 줄일 때(제곱수는 k라고 해보자)
제곱수가 홀수일 때는 -1을 해주어 $ A^{k - 1} * A $ 로 만들어 제곱수를 짝수로 만들어주고
제곱수가 짝수일 때는 /2를 해주어 $ A^{\frac{k}/{2}} $ 로 만들어 계산량을 줄입니다.
#define _CRT_SECURE_NO_WARNINGS
#include<algorithm>
#include<iostream>
using na...
크롬 개발자 도구가 동작하지 않는 경우 대처 방법
크롬 개발자 도구는 웹 개발에 있어 필수적인 도구라고 할 수 있습니다. 하지만, 몇몇 사이트를 들어가거나 크롬 자체적인 에러로 인하여 개발자 도구가 실행되지 않는 경우도 있습니다. 이런 경우 해결책은 아래와 같습니다.
Ahnlab Safe Transaction이 설치되어 있는 경우 : 구글링을 해보면 이 프로그램에 의하여 문제가 발생하는 경우가 많은 것 같습니다. 이 경우에는 프로세스를 종료해버려서 문제를 해결할 수 있습니다.
크롬 자체적인 오류 : 특별한 사이트에서만 안되는 것이 아니라 크롬의 자체적인 오류로 인하여 많은 사이트에서 동작하지 않는 경우도 많습니다. 이런 경우 크롬을 껐다가 키면 잘 작동...
MAC 주소가 다양한 환경에 따라 변경되는 경우, MAC 주소 고정하는 방법
요즈음 나오는 노트북들은 대부분 Lan Port를 가지고 있지 않은 경우가 많습니다. 대부분 슬림형으로 나오는 노트북의 경우에는 USB C type의 폼팩터만 지원해야 되기 때문에, 이런 경우 허브를 많이 사용합니다. USB 허브에 Lan Port가 있는 경우에는 허브에 랜선을 꽂아서 사용할 수 있습니다.
하지만, 제가 여러 허브를 사용하다가 Mac Address를 살펴보니 어떤 허브의 경우에는 자체적으로 계속해서 Mac Address 를 바꾸는 경우가 있었습니다. 구글링을 해보니 허브 말고 다른 디바이스들에서도 Mac Address가 계속 바뀌는 사례가 있다고 했습니다. 저는 Device에 고유한 값이 Mac ...
797 post articles, 80 pages.