본문 바로가기

반응형

전체 글

[백준] Fly me to the Alpha Centauri 문제_ https://www.acmicpc.net/problem/1011 골드V 풀이_ N광년일 때 이동 경로를 그리고, 이동 회수를 표로 그리면 다음과 같다. 광년 이동 경로 이동 횟수 2 11 2 o 3 121 3 o 4 121 3 | 5 1211 4 o 6 1221 4 | 7 12211 5 o 8 12221 5 | 9 12321 5 | 10 123211 6 o 11 123221 6 | 12 123321 6 | 13 1233211 7 o 14 1233221 7 | 15 1233321 7 | 16 1234321 7 | 17 12343211 8 o 3 이후의 늘어난 구간을 살펴보면 5 7 10 13 17이 있다. 이 수들의 이전 숫자는 4 6 9 12 16. 잘 보면 4 9 16은 제곱수임을 알 수 있고.. 더보기
[백준] 설탕 배달 문제_ https://www.acmicpc.net/problem/2839 실버 IV 풀이_ 3kg봉지보다는 되도록 5kg봉지를 쓰는 게 무조건 적은 개수가 된다. 예: 15kg 설탕은 3kg로 배달하면 5개가 나오지만, 5kg로 배달하면 3봉지로 나온다 5kg로 담을 수 없는 경우, 3kg봉지를 이용해 담도록 한다. 8kg를 넘어가면 모든 수를 5kg와 3kg로 표현이 가능하다. (1=5x2-3x3, 2=5-3) 즉 5kg로 최대한 담고 남은 게 있으면 5kg 봉지를 줄여가며 3kg으로 표현이 가능한지 확인한다. 지금 시점에서 최선의 선택을 하다: Greedy n = int(input()) def solution(n): return -1 if n < 8 and not(n % 3 == 0 or n % 5 .. 더보기
[프로그래머스] 시소 짝꿍 문제_ https://school.programmers.co.kr/learn/courses/30/lessons/152996 레벨2 풀이_ 두 명이 각각 시소에 앉아, 평형을 이루는지를 확인 무게가 각각 x y이고 위치가 각각 a b라고 할 때, 평형상태일 수 있는 조건: x * a = y * b 즉 y의 무게는 x * a / b x의 무게를 알고 있을 때 y의 무게를 구하려면 a와 b에 값을 일일이 넣어보아야 한다. x와 y를 각각 집어 계산을 진행해야하므로, O(n^2) 2에서 구한 y의 무게는 정수여야 하며, weights의 안에 있어야 한다. weights를 탐색하는 시간을 줄이면 O(n) 시간에 계산이 가능 상수 시간에 검색할 수 있도록 weights의 값을 보관하는 map 생성 { 몸무게: 해당.. 더보기
[프로그래머스] 124 나라의 숫자 문제_ https://school.programmers.co.kr/learn/courses/30/lessons/12899 레벨2 풀이_ 1, 2, 4 3개의 수를 이용한다. -> 3진법 3진법과 달리 3은 자릿수를 바꾸지 않고 4로 표현한다. -> 3은 4로, 6은 14로, 9는 24로 표현 n % 3 = 1은 1, n % 3 = 2는, 그리고 n % 3 = 0는 4로 표현된다 -> [4, 1, 2] 배열의 인덱스가 3으로 나눈 나머지. 배열의 값이 나머지가 나타내는 숫자 3의 배수의 경우, 자릿수를 바꾸지 않고 같은 자릿수로 표현해야 한다 -> 다음 숫자를 구할 때 3으로 나누어 떨어지지 않게, 1을 뺀 값을 나눔 def solution(n): digits = ('4', '1', '2') answer .. 더보기
Rails에서 Vue에 데이터 전달하기 레일즈에서 Vue로 데이터를 전달해야 할 순간이 있습니다. 그런데 레일즈의 뷰 템플릿 엔진으로는 Vue를 바로 다룰 수가 없기 때문에(제가 모르는 걸 수도 있어요..ㅜㅜ), 값을 전해주기가 조금 힘듭니다. 이럴 때 Vue에게 값을 전달하는 방법을 몇 가지 적어보려고 합니다. HTML의 data속성을 사용해 전달 HTML에는 data라는 속성이 있습니다. 간단한 데이터를 넘길 때 편리합니다. 그치만 위의 링크에도 언급이 되어 있듯 성능이 그다지 좋은 편은 아니라고 하니, 다량의 데이터를 넣는 것은 좋지 않아 보이네요. 아직 Vue가 익숙하지 않아 생각보다 구현에 좀 애를 먹었는데요ㅜㅜ 이렇게 하면 됩니다. # controller def index @user_name = current_user.name en.. 더보기
Ruby default gem 삭제하기 어느 날 Rails를 구동시켰더니 bundler의 버전이 낮다며 업데이트 하라는 문구가 보였습니다. 이미 최신 버전을 쓰고 있는데 자꾸 에러가 떠서 찾아 보니, 로컬에 설치되어 있는 bundler가 문제인 듯 보였습니다(rbenv를 사용하고 있습니다). 그런데 bundler을 지우려고 했더니 default gem이라 삭제가 안 된다네요. 열심히 인터넷을 돌고 돌아 지울 수 있는 방법을 찾아 냈습니다. bundler의 버전 확인 % gem list | grep bundler bundler (default: 2.1.2)default라고 써 있는 버전이 문제였습니다. default버전 삭제 % cd ~/.rbenv/versions/[루비 버전]/lib/ruby/gems/[루비 버전]/specifications.. 더보기
Bundler MYSQL2 설치 중 에러 해결하기 개인 프로젝트를 위해 프로젝트를 생성하고, mysql2를 설치하기로 했습니다. 그런데 자꾸 에러가 뜨네요. current directory: /Users/hee/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/mysql2-0.5.3/ext/mysql2 make "DESTDIR=" compiling client.c client.c:787:14: warning: incompatible pointer types passing &#39;VALUE (void *)&#39; (aka &#39;unsigned long (void *)&#39;) to parameter of type &#39;VALUE (*)(VALUE)&#39; (aka &#39;unsigned long (*)(u.. 더보기
VSCode에서 solargraph를 업데이트 하라고 계속 뜰 때 Ruby로 개발하면서 VSCode의 solargraph기능은 정말 편리합니다. 그런데 어느 순간부터 계속 업데이트하라고 안내 메시지가 나오는데, 업데이트를 해도 해도 계속 뜨더라고요. 최초에 설치했을 때 설치 위치가 잘못 지정되었던 것 같습니다. 해당 위치의 파일을 지우고 다시 설치하니 문제없이 사용이 가능했습니다. % solargraph -v 0.39.8 # 이 버전이 설치된 경로는 .rbenv/shims/solargraph % which solargraph /usr/local/bin/solargraph # 여기에 설치된 버전은 0.38.2 버전은 맞게 뜨는데 이상하게 경로가 제대로 안 뜹니다. 그래서 그냥 지워버렸습니다. % rm -rf /usr/local/bin/solargraph % sudo ge.. 더보기