분류 전체보기

·CS/백준 풀이
상당히 귀찮았던 문제. 고려해야 할 점은 1. 미세먼지의 확산은 모든 방향에서 동시에 일어난다. -> 단순 반복문으로 구현해서는 안된다. 2. 공기청정기 순환에 신경쓰자. 3. 리스트의 전체 합을 구하면 공기청정기 값인 -2가 더해진다. 출력값에서 +2를 해주자. 1번 항목은 따로 임시 배열을 선언해서 해결했다. 2번은.. 좀 걸렸다. 차근차근, 천천히 하자. def mise(): miselist=[] for x in range(r): for y in range(c): if m[x][y]!=0 and m[x][y]!=-1: miselist.append([x,y]) tmp=[[0 for _ in range(c)] for _ in range(r)] for t in miselist: x=t[0] y=t[1] ..
·주식, 투자
글을 쓰기에 앞서, 위 내용은 모두 개인적인 관점임을 밝히며, 매수와 매도에 대한 추천이 아닙니다. 연준이 양적 긴축과 급격한 금리 인상을 외치며 강한 하락이 찾아왔다. 나스닥의 경우 200일 선을 뚫고 내려와서 200일 선이 저항선이 되었으며, S&P지수는 어제부로 200일 선이 뚫렸다. 이전까지의 관점에서는 오미크론을 포함한 코로나에도 불구하고, 코로나를 극복하고 경기가 좋을 것이라고 생각했다. 그러나 미국의 주택판매 지수는 예상보다 하회했고, 신규 실업수당 청구건수는 늘어났다. 실업자는 늘어나고, 주택판매가 줄어들고 있다. 최근 항상 쇼티지가 났던 원유 재고는 남았으며, 생산자 물가지수 역시 떨어졌다. 이를 통해 경기가 둔화되고 있음을 우려한 투자자들이 가치주 마저 피하고 있는 것으로 보인다. 아무..
·CS/백준 풀이
어떤 문제든, 문제를 잘 읽는게 제일 중요하다. 문제를 제대로 안읽어서 BFS로 접근했던 문제 가로, 세로 상황에서 대각선으로 꺾는것을 기준점의 이동 없이 옮기는 줄 알고 여러가지 가능한 경우 중 최단거리의 갯수를 찾는 문제인 줄 알았다. 하지만 이건 DFS이다. 다중 조건 미로찾기라고 생각하면 될 것 같다. 기준점과 움직이는 점을 분리해서 푼 코드이다. import sys input=sys.stdin.readline def bfs(stdx,stdy,mvx,mvy): if mvx==n-1 and mvy==n-1: global c c+=1 return #가로 if stdx==mvx and stdy==mvy-1: if mvy+1
·CS/백준 풀이
다익스트라 알고리즘에 대한 정확한 이해가 없어서 어려웠던 문제. 이 문제를 통해서 개념을 확실히 익혔다. 다익스트라는 dfs와 비슷한 방식으로 작동한다. 최단 경로는 최단 경로의 합이라는 알고리즘으로 작동한다. 따라서 힙을 통해 구현할 수 있다. 약간 조건이 잔뜩붙은 dfs같은 느낌이다. 시작점에서 최단경로를 찾는다 -> 최단경로를 힙에 넣는다 -> 최단경로를 꺼내어 시작점과 중간 경로까지의 값과 비교한 후에 최단 경로가 더 짧은 경우에만 더 진행한다.(이걸로 시간초과가 갈린다.) -> 현재 저장된 중간경로에서 또 다른 경유 지점까지의 합이 저장된 거리보다 짧을 경우, 저장된 거리를 갱신한다. -> 저장된 거리를 힙에 다시 넣는다. 그리고 이 문제의 경우, 특정한 경로를 지나야 하는데 그 발상을 떠올리지..
·CS/백준 풀이
n을 입력하면 n줄에 해당하는 모양을 출력하면 되는 문제. 이전까지의 별찍기와는 달랐다. 나는 출력에만 고집해서 시간을 굉장히 많이 썼는데, 그게 상당히 어렵다는 것을 알게됐다. 모양을 배열로 접근해서 풀었어야 하는 문제. 예를 들어 n=3이면 3*5의 배열을 만들어야 한다. * * * * * * * * 그리고 다음 n=6이면, 6*11의 배열을 만들어야 한다. * * * * * * * * * * * * * * * * * * * * * * * * 중간을 기준으로 보면 첫번째 행의 *은 n=6일땐 5, n=3일때는 2이므로, n-1에 위치함을 알 수 있다. 그렇다면 다음 삼각형이 만들어지는 4번째 행의 위치는 어떤가? 첫번째 기준 값에서 각각 2만큼(n//2-1만큼) 떨어져 있음을 알 수 있다. 이를 통해..
·CS/백준 풀이
플로이드 와샬 알고리즘을 통해 해결했다. 별거 없다. n=int(input()) m=int(input()) road=[[99999999 for _ in range(n+1)] for _ in range(n+1)] for _ in range(m): a,b,c=map(int,input().split()) if road[a][b]>c: road[a][b]=c for t in range(n+1): for x in range(n+1): for y in range(n+1): if road[x][y]>road[x][t]+road[t][y]: road[x][y]=road[x][t]+road[t][y] if x==y: road[x][y]=0 for x in range(1,n+1): for t in road[x][1:]: ..
·CS/백준 풀이
동전으로 돈만들기. 1,2로 7을 만드는 경우를 살펴보면, 1+6을 만드는 경우의 수 2+5를 만드는 경우의 수가 있다. 그런데 이걸 1과 2를 동시에 진행시키면 중복되는 경우가 세지게 된다. 그래서 결론적으로는 피보나치수열처럼 된다. 아래는 잘못 작성한 코드이다. t = int(input()) for i in range(t): n = int(input()) l = list(map(int, input().split())) m = int(input()) dp = [0 for i in range(m + 1)] dp[0] = 1 for x in range(1, m + 1): for t in l: if x - t >= 0: dp[x] += dp[x - t] print(dp) 이것을 1과 2의 경우를 분리해서 진..
·CS/백준 풀이
말만 번지르르하지 별거 없다. 파란 영역 중에 제일 큰 계단을 찾으라는 문제. 아직 스위핑을 안배워서 기본 점수만 받아 보았다. 경우에 따라 잘 나눠서 코딩해주면 된다. 1. 이전값 보다 큰 경우 이전 dp값 +1 2. 이전값과 같은 경우 이전 dp + 0 3. 이전값보다 작을 경우 이전 dp값이 현재 높이보다 작은 경우 : 이전 dp+1 이전 dp값이 현재 높이와 같은 경우 : 이전 dp +0 이전 dp값이 현재 높이보다 클 경우 : 현재 높이값 n=int(input()) h=[0] h.extend(map(int,input().split())) dp=[0 for _ in range(n+1)] dp[1]=h[1] for x in range(1,n+1): if h[x]>h[x-1]: dp[x]=dp[x-1..
·CS/백준 풀이
처음에 수색범위 만큼만 이동할 수 있는 줄 알고 삽질했던 문제;; 알고보니 수색범위안에 있는 곳은 모두 갈 수 있던 거였다. 플로이드-와샬을 통해 해결했다. n에서 시작하여 모든 노드까지의 영역이 기록시켜서 1부터 n까지 수색범위를 넘지 않는 것들의 아이템 수를 더해주면 된다. from collections import deque n, d, r = map(int, input().split()) region = [0] region.extend(list(map(int, input().split()))) m = [[999999 for _ in range(n + 1)] for _ in range(n + 1)] for _ in range(r): a, b, c = map(int, input().split()) m[..
·CS/백준 풀이
오랜만의 bfs, dfs 항상 그렇듯, dfs는 시간초과다. 처음 짠 코드 from collections import deque import sys input=sys.stdin.readline n,m=map(int,input().split()) M=[] for _ in range(n): M.append(list(str(input()))) def bfs(x,y,Mcopy): vismap=[[0 for x in range(m)] for y in range(n)] q=deque() cnt=1 q.append([x,y,cnt]) while q: x,y,cnt=q.popleft() a=[-1,1,0,0] b=[0,0,-1,1] for t in range(4): X=x+a[t] Y=y+b[t] if 0
_0422
'분류 전체보기' 카테고리의 글 목록 (28 Page)