전체 글

Hello World
· 백준
코드 import sys input = sys.stdin.readline n,m = map(int, input().split()) girlgroup = {} # 1번 유형 퀴즈 답변을 위한 dict girlgroupname = {} # 0번 유형 퀴즈 답변을 위한 dict for _ in range(n): x = input().rstrip() member = int(input()) for _ in range(member): name = input().rstrip() girlgroup[name] = x # 이 부분은 for문 처음에 리스트를 만들어 마지막에 넣는 방법으로 최적화할 수 있는 듯하다. if x not in girlgroupname: girlgroupname[x] = [name] else: gi..
· PYTHON
제목이 곧 내용의 전부인데, 더 자세한 설명이 필요할 수도 있을 것 같아서 도움 받은 블로그와 공식 문서를 첨부하였음 참고문서 https://blog.hwahae.co.kr/all/tech/6662 Python3.6 부터는 Dict가 순서를 기억한다. – 화해 블로그 | 기술 블로그 Python3.6 화해 개발팀에서는 닥블(닥치고 블로그)이라는 소모임을 운영하고 있습니다. 최근 닥블 활동으로 화해팀의 백엔드 플랫폼에서 사용 중인 Python 딕셔너리에 대해 새로 알게 된 내용을 정 blog-wp.hwahae.co.kr https://docs.python.org/ko/3/library/stdtypes.html#dict Built-in Types The following sections describe th..
· 백준
코드 # 파이썬 3.7부터 딕셔너리 순서는 삽입 순서임이 보장된다. # https://docs.python.org/ko/3/library/stdtypes.html#dict import sys input = sys.stdin.readline n,m = map(int, input().split()) table = dict() for _ in range(m): x = input().rstrip() if x in table: # 이미 있다면 딕셔너리에서 제거 table.pop(x) table[x] = 1 # 추가 print(*list(table.keys())[:n], sep="\n") 딕셔너리 삽입 순서가 보장되는 것이 어렴풋이 기억나 해결한 문제. https://blog.hwahae.co.kr/all/tech..
· 백준
코드 # 누적합: 리스트의 각 원소에 대해 그 이전 원소들의 합을 미리 구하는 방법 # n = 100000, nlogn 이하로 구하자 # sum 함수의 시간복잡도는 O(N), 긴 시퀀스를 구할 때는 시간이 오래걸린다. # 아래 방법은 O(N+M)으로 해결할 수 있다. import sys input = sys.stdin.readline n,m = map(int, input().split()) score = [*map(int, input().split())] temp = 0 arr = [0] # 제로인덱스임을 감안해서 0 추가 for i in score: temp += i # 구간합 arr.append(temp) for _ in range(m): x,y = map(int, input().split()) pr..
· 백준
코드1 def fibo(x): x = abs(x) if x == 0: return 0 a,b = 0, 1 for _ in range(2, x+1): a,b = b, a+b return b n = int(input()) res = fibo(n) if res == 0: print(0) elif n < 0 and abs(n)%2 ==0: print(-1) else: print(1) print(res%1000000000) 파이파이로 겨우 통과한 코드이다. 메모리 초과에 대한 해답을 찾기 위해 2개만 저장했는데, 훨씬 좋은 방법이 있었다. 또 이를 뒷받침하는 근거도 첨부했으니 문제 풀 때마다 기억하면서 해결해봐야겠다. 코드2 def fibo(x): x = abs(x) if x == 0: return 0 table..
· 백준
코드 import heapq, sys input = sys.stdin.readline INF = 987654321 # 다익스트라 알고리즘 def dijkstra(x,graph): visited = [INF]*(n+1) queue = [(0,x)] visited[x] = 0 while queue: cost, now = heapq.heappop(queue) if cost > visited[now]: continue for i in graph[now]: newcost = cost + i[1] if visited[i[0]] > newcost: visited[i[0]] = newcost heapq.heappush(queue, (newcost, i[0])) return visited tc = int(input())..
· C++
입출력 #include using namespace std; // std::를 안붙여도 됨 int main(void) { int a, b; cin >> a >> b; # 한 칸 띄우고 입력 받기, ex) 1 2 cout 연산자와 함께 사용자의 입력을 받는다. cout: c의 printf와 같은 역할. > a >> b; cout.precision(10); // cout은 실수를 출력할 때 기본적으로 6자리까지 출력 cout
· REACT NATIVE
Cold Boot와 Quick Boot react native에 대한 것은 아니고, 앱을 만들다가 우연찮게 cold boot 기능을 찾아서 포스팅하고 있다. AVD Manager는 기본적으로 Quick Boot로 설정되어있다. 이는 실행을 빠르게 해주는 기능이지만 종종 AVD Manager에 문제가 생기는 경우가 있다. 이때는 전원을 껐다 켜도 문제가 해결되지 않은 상태로 재부팅 되기 때문에 해결방법이 필요하다. Cold Boot는 에뮬레이터를 완전히 종료 후 처음 켠 것처럼 실행이 되기 때문에 위 문제를 해결할 수 있다. Cold Boot로 실행하기 ADV Manager에 들어가 ...을 클릭하면 Cold Boot Now를 찾을 수 있다. 이를 이용해서 실행하면 된다. 항상 Cold Boot로 실행하기..
· 백준
코드 n = int(input()) lst = set() for _ in range(n): k = input() lst.add(k) lst = list(lst) lst.sort(key = lambda x: (len(x),x)) # 사전순 정렬은 x로 두면 된다. for i in lst: print(i) 사전순 정렬은 x로 두면 되는 걸 배운 문제
· 백준
코드 lst = [] num = 0 while 1: if lst and num+1 == len(lst): break # 최초 값도 포함하기 때문에 리스트 길이가 1 길다. k = input().split() if not lst: num = int(k[0]) # break 값 설정 for i in k: lst.append(int(i[::-1])) # 뒤집은 값을 리스트에 추가 sortedlst = sorted(lst[1:]) # 처음 값은 빼주어야하므로 슬라이싱 for i in sortedlst: print(i)
Melon Man
제발 CPU는 집에서 만들어 씁시다