Home

[프로그래머스] 큰 수 만들기 풀이

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...

Read more

[프로그래머스] 피보나치 수 풀이

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]

Read more

[프로그래머스] 전화번호 목록 풀이

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: ...

Read more

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:...

Read more

[프로그래머스] 더 맵게

1. 문제 https://programmers.co.kr/learn/courses/30/lessons/42626 2. 풀이 2.1. PriorityQueue를 이용한 시간초과 풀이 PriorityQueue 를 사용하여 문제를 해결한 풀이입니다. 문제 해결 방법은 아래와 같습니다. PriorityQueue 에 남은 원소가 2개 이상일 경우에 계속해서 로직을 수행합니다. 가장 적은 2개를 뽑아서 2개 다 0이 아닌지 확인하고, 다음 값을 PriorityQueue에 집어 넣습니다. while 문이 끝나고 나서 P...

Read more

[프로그래머스] 프린터 풀이

1. 문제 https://programmers.co.kr/learn/courses/30/lessons/42586 2. 풀이 2.1. 덱을 이용한 풀이 1~9 까지 우선순위마다 값을 다르게 넣기 위한 덱 배열을 생성합니다. 이후 우선순위에 따라서 숫자를 집어 넣습니다. 우선순위 높은 덱부터 살펴봅니다. 이전에 살펴본 요소를 last_idx 로 표기해놓고, 해당 idx 이후에 실행될 요소를 찾습니다. 이후 큐에 있는 요소들을 순서대로 정답 배열에 집어 넣습니다. 정답 배열에서 location에 해당하는 요소를 찾아 정답으로 출력합니다. from collections import deque ...

Read more

[프로그래머스] 기능개발

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...

Read more

[백준] 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...

Read more

크롬 개발자 도구가 동작하지 않는 경우 대처 방법

크롬 개발자 도구는 웹 개발에 있어 필수적인 도구라고 할 수 있습니다. 하지만, 몇몇 사이트를 들어가거나 크롬 자체적인 에러로 인하여 개발자 도구가 실행되지 않는 경우도 있습니다. 이런 경우 해결책은 아래와 같습니다. Ahnlab Safe Transaction이 설치되어 있는 경우 : 구글링을 해보면 이 프로그램에 의하여 문제가 발생하는 경우가 많은 것 같습니다. 이 경우에는 프로세스를 종료해버려서 문제를 해결할 수 있습니다. 크롬 자체적인 오류 : 특별한 사이트에서만 안되는 것이 아니라 크롬의 자체적인 오류로 인하여 많은 사이트에서 동작하지 않는 경우도 많습니다. 이런 경우 크롬을 껐다가 키면 잘 작동...

Read more

MAC 주소가 다양한 환경에 따라 변경되는 경우, MAC 주소 고정하는 방법

요즈음 나오는 노트북들은 대부분 Lan Port를 가지고 있지 않은 경우가 많습니다. 대부분 슬림형으로 나오는 노트북의 경우에는 USB C type의 폼팩터만 지원해야 되기 때문에, 이런 경우 허브를 많이 사용합니다. USB 허브에 Lan Port가 있는 경우에는 허브에 랜선을 꽂아서 사용할 수 있습니다. 하지만, 제가 여러 허브를 사용하다가 Mac Address를 살펴보니 어떤 허브의 경우에는 자체적으로 계속해서 Mac Address 를 바꾸는 경우가 있었습니다. 구글링을 해보니 허브 말고 다른 디바이스들에서도 Mac Address가 계속 바뀌는 사례가 있다고 했습니다. 저는 Device에 고유한 값이 Mac ...

Read more