분류 전체보기 324

[백준-파이썬] 5710:전기 요금

문제 보러 가기!! 재밌는 이분 탐색 문제였다~ 처음에 left를 0, right를 A로 삼고 이분 탐색을 시작했다. 상근이가 내는 전기 요금이 mid라고 가정하고, 아래 계산이 맞는지 봤다. 1. 상근이가 내는 전기 요금을 가지고, 상근이가 쓴 전기 사용량을 계산한다. 2. 상근이가 쓴 전기 요금에 B를 더하면 이웃이 쓴 전기 요금이 된다. 이를 가지고 이웃이 쓴 전기 사용량을 계산한다. 3. 상근이가 쓴 전기 사용량과 이웃이 쓴 전기 사용량을 합쳤을 때 내야 하는 요금을 계산한다. 4. 3번의 결과와 A를 비교한다. 4-1. 같으면 정답이다! 4-2. 3번의 결과가 A보다 더 크면, 상근이가 쓴 전기 요금(mid)을 낮추어야 한다. 4-3. 3번의 결과가 A보다 더 작으면, 상근이가 쓴 전기 요금(m..

[백준-파이썬] 20157: 화살을 쏘자!

문제로 가기! 인사 요즘 싸피 pjt를 하다가 오랜만에 문제 푸니 좋다~ 꾸준히 풀어야 하는데...!! 설명 처음에는 모든 각도를 계산해야 하나..? 어떻게 계산하지..? 하다가, 기울기를 구하면 된다는 걸 알았다. 그런데 딱 나누어서 떨어지지 않는 것(무한 소수 -> 10/3 = 3.33333333333......)이 문제가 된다고 한다. 이 블로그를 보고 알았다 !! 그래서 x, y를 최대한 약분한 것을(0,0에서 시작하므로) 튜플에 넣어서, 기울기로 봐줘야 한다. 딕셔너리(역시 default dictionary가 너무 편하다 >< )에 그 기울기를 key로 삼아서, 그 기울기를 만날 때마다 1씩 더했다. 나중에 딕셔너리.value()를 이용해서, 값들을 봐주면서 제일 큰 값을 정답으로 출력했다. 헷..

[백준-파이썬] 17349: 1루수가 누구야

문제 보러 가기! 구현 문제! 처음에는 엄청 간단하게만 생각했는데, 아니었다. 생각해야 할 게 많았다.. 나는 한 명씩 거짓말쟁이로 가정하고, 정답이 될 수 있는 것들을 다 모았다. 정답이 될 수 있는 게 하나라면, 정답으로 출력하면 된다. 정답이 될 수 있는 게 없거나, 여러 개라면 정답이 확정이 안되는 것이니까 -1를 출력하면 된다. 한 명을 거짓말쟁이로 가정한 상태에서 정답이 뭐가 될 수 있는지 봐주기 위해서, 매번 baseman_arr 리스트를 만들었다. 1번~ 9번에 대해서, 1루수라고 하는지 아니라고 하는지를 저장했따. 초기값은 -1로 해둔 후에, 해당 번호의 사람이 1루수라고 하면 1을, 아니라고 하면 0을 저장했다. 모순이 생긴다면 바로 break를 했고, 그렇지 않다면 모든 사람의 말을 ..

[싸피] 문과생의 2학기 공통 프로젝트 초반부 소감

처음 2주는 주로 기획을 했고, 이제 본격적으로 서서히 코딩도 하려고 한다. 정말 모르는 게 많다.. 공부하기에 24시간이 부족한 것 같다ㅠㅠ 팀에 기여를 하고 싶은데, 잘 몰라서 슬프다 ㅠㅠ 그래도 열심히는 하고 있다.. Vue만 쓰다가 React도 새롭게 공부하고 있다. TypeScript까지 쓰기로 했는데, 에러가 많이 생겼다. 전에는 한 분과 백, 프론트 맡아서 했는데 이제는 백 3, 프론트 3명이니까 협업하는 방법을 정해야 했다. 지라, 깃.. 지라는 할 일 등록하는 기능 정도만 생각했는데, 참 기능이 많다. 그래도 유용하긴 할 것 같다. 깃도 나 혼자서 git add, commit, push, pull, clone 정도만 하다가.. 이제는 나름 git flow에 따라서 작업하려고 하니 어렵다...

[백준-파이썬] 11779: 최소 비용 구하기2

문제 보러 가기! 평범한 다익스트라 + 알파이다. 최소 비용을 가지는 경로를 방문 도시 순서대로 출력하는 부분, 그 경로에 포함되는 도시 개수도 출력해야 해서 좀 더 생각해야 했다. distance 리스트를 활용했다. 평범한 다익스트라에서는 distance 리스트는 출발점에서 그 점까지의 비용만 저장한다. 그런데 여기에서는 출발점에서 그 점까지 최소 비용으로 올 때, 그 전 점도 저장했다! 다익스트라를 다 수행한 후에, 최종 도착 점부터 distance 리스트를 활용해서 거꾸로 봐주었다. 그 전에 어떤 점에서 왔는지를 봐서 history 리스트에 저장한 후, 거꾸로 출력했다. [TMI 잠깐 근황] 요즘 싸피에서 프로젝트를 열심히 하느라고 ㅠㅠ 문제를 별로 못풀다가 푸니까 재밌다 >< (물론 프로젝트도....

[AWS] AWS Route 53 요금 뭐지 ??

지난 11월 말, 싸피 1학기 마지막 프로젝트를 백엔드는 AWS로, 프론트 엔드는 netlify로 배포했다! AWS Free Tier 라서 돈 나갈 일이 없을 줄 알았는데, 문자로 돈이 나갔다는 걸 보고 깜짝 놀랐다 ! 😱 천원 조금 넘는 금액이었지만 혹시 뭔가 잘못 되었을까봐, 앞으로 더 큰 돈이 나갈까봐 무서웠다ㅠ😫😭 AWS 사이트에 가서 보니 Route 53에서 1달러가 나갔다고 써있었다. 세부 보기를 하니 아래와 같았다. (다행히 Elastic Compute Cloud는 프리 티어라서 0.00 달러.. ❤) Route 53 HostedZone! 하나에 0.5 달러인데, 나는 두 개라서 1달러라고.. 세금 0.1 달러라고.. Route 53이 무엇인지, 내가 왜 이 서비스를 이용했는지 이야기하겠다...

그밖에🙌 2022.01.08

[백준-파이썬] 9465: 스티커

문제 보러 가기! 문제 2행 n열에 한 칸마다 스티커가 있다. 각각에는 점수가 있다. 한 스티커를 쓰면, 그것과 변을 공유하는(상하좌우) 스티커를 못 쓴다. 쓸 수 있는 스터커 점수의 최댓값을 구하는 문제였다. 풀이 DP로 풀었다. dp 테이블을 2Xn 리스트로 만들었다. 그 위치의 스티커를 뗐을 때, 그때까지의 최대 점수를 저장한다. 1행 n열의 스티커 뗐을 때의 최대 점수 = (2행 n-1열 스티커 뗐을 때의 최대 점수 or 2행 n-2열 스티커 뗐을 때의 최대 점수) + 1행 n열 스티커 점수이다. 2행 n열의 스티커 뗐을 때의 최대 점수는 위의 식에서 2행을 1행으로, 1행을 2행으로만 바꾸면 된다! n이 1일 때, 2일 때는 따로 수작업으로 처리했다. 하늘색 숫자는 그 자리의 스티커 떼면 얻는 ..

[백준-파이썬] 1874: 스택 수열

문제 보러 가기! 문제 1n의 수로 이뤄진 수열이 주어진다. 1n까지 수를 순서대로 스택에 넣었다 뺐다 하면서 주어진 수열을 만드는 방법을 출력해야 한다. 풀이 처음에는 막막했는데, 스택의 성질을 생각하면서 구현했더니 됐다 ! 스택 - Last in First out!! import sys input = sys.stdin.readline MIIS = lambda: map(int, input().split()) n = int(input()) arr = list(int(input()) for _ in range(n)) # 입력된 수얼 ans = [] stack = [] idx = 0 # 입력된 수열 어디까지 만들었는지 for i in range(1, n+1): stack.append(i) # 스택에 넣는다 ..

[백준-파이썬] 12851: 숨바꼭질 2

문제 보러 가기! 평범한 BFS 문제에서 조금 더 생각해야 했다.. dq에는 위치, 얼마나 걸렸는지를 가지고 있는다. 앞으로 걷고, 뒤로 걷고, 순간이동하는 경우를 범위, 방문 체크한 후에 dq에 넣는다. 일단 N이 0일 때는 곱하기 2해도 0이고, -1은 해도 점점 멀어지는 거니까 괜히 시간만 든다. N이 0일 때는 일단 무조건 한 칸 앞으로 가야 하니까, dq에 (N+1, 1)을 넣고 시작한다. 틀리다가 질문 게시판의 반례!!를 보고 문제를 알았다. dq에 넣을 때 방문 체크를 하면 안되고, 뺄 때 방문 체크를 해야 한다! 1 10의 경우에 1->2->4->5->10으로 가는 게 젤 빨리 가는 것인데, 1에서 2로 갈 때 걸어서 갈 수도, 순간 이동해서 갈 수도 있다. dq에 넣을 때 방문 체크를 하..

728x90