분류 전체보기

    1,2,3 더하기 [백준 9095] - python

    1,2,3 더하기 [백준 9095] - python

    import sys input = sys.stdin.readline def BOJ9095() : T = int(input()) dp = [0] * 12 dp[1] = 1 dp[2] = 2 dp[3] = 4 for i in range(4, 12) : dp[i] = dp[i-3] + dp[i-2] + dp[i-1] for _ in range(T) : print(dp[int(input())]) BOJ9095() 접근 방법 : dp 문제이다. 4를 만드는 경우의 수부터 접근 해보자. 4는 1. 1을 만드는 경우의 수들에서 3하나를 추가해주면 된다 2. 2를 만드는 경우의 수들에서 2하나를 추가해주면 된다 3. 3을 만드는 경우의 수들에서 1하나를 추가해주면 된다 4를 만드는 경우의 수는 1을 만드는 경우의 수 ..

    패션왕 신해빈

    패션왕 신해빈

    import sys input = sys.stdin.readline def BOJ9375() : T = int(input()) for _ in range(T) : n = int(input()) dict = {} for _ in range(n) : _, type = input().split() if type in dict : dict[type] += 1 else : dict[type] = 1 answer = 1 for i in dict.values() : answer *= (i+1) print(answer - 1) BOJ9375() 접근방법 : 1. 옷의 이름은 필요 없다. 입을지 말지 무엇을 입을지만 알고싶다. 2. 타입은 두개 옷의 종류는 각각 3개, 2개라 가정해보자, 아래의 이미지에 표현해두었다. ..

    Android Uri.getQueryParameter에  + 들어가면 빈칸으로 바뀝니다.

    Android Uri.getQueryParameter에 + 들어가면 빈칸으로 바뀝니다.

    최근에 다이나믹링크를 구현하던중 정보를 링크에 query로 담았을때 +가 빈칸으로 변경되는 이슈가 있었습니다. 같은 다이나믹 링크를 공유했을때 ios에서는 이슈가 없어서 안드로이드 쪽의 이슈로 생각하고 접근하였습니다. 첫번째 사진은 예시를 나타낸 것이고 두번째 사진은 getQueryParameter로 가져왔을때 +가 빈칸으로 변경되어 나타나는 모습입니다. getQueryParameter가 의심이 됩니다. 한번 코드를 살펴봅시다 return 값이 뭔가 수상하네요. convertPlus 파라미터도 있고 한번 더 들어가 봅시다 appendDecoded가 builder의 값을 변경해주는것 같습니다. appendDecoded를 찾아가 봅시다 범인을 찾았습니다!!! 이전에 convertPlus 옵션이 true로 되..

    과제 [백준 - 13904] - python

    과제 [백준 - 13904] - python

    def BOJ13904() : n = int(input()) answer = [0] * 10000 l = [] for _ in range(n) : l.append(list(map(int, input().split()))) l.sort(key= lambda x : (-x[1])) print(l) for i in range(n) : for j in range(l[i][0] -1, -1, -1) : # 그 날부터 거꾸로 가면서 비어있는칸에 넣어버리자!! if answer[j] == 0 : # 마감일보다 전의 날중에 0인 날이 있다면 값을 넣어 주면 됨 answer[j] = l[i][1] break print(sum(answer)) BOJ13904() 접근방법 : 1. 값을 기준으로 정렬을 시켜준다. 2. 마감..

    그룹 단어 체커 [백준 - 1316] - python

    그룹 단어 체커 [백준 - 1316] - python

    def BOJ1316() : n = int(input()) count = 0 for _ in range(n) : pointer = '' dict = {} flag = True for k in list(input()) : if pointer != k and k not in dict : pointer = k dict[k] = 1 elif pointer == k and k in dict : continue elif pointer != k and k in dict : flag = False break if flag : count += 1 print(count) BOJ1316() 접근 방법 : 1. 포인터를 하나 추가 하였다. 이 포인터는 이전에 추가되고 있던 문자열 이거나 현재와는 다른 문자열 일수 있다. 2...

    하버드 새벽 4시 반

    하버드 새벽 4시 반

    집에 구비되어 있었지만 안 읽은것 같아서 이번 기회에 다시 읽게 되었다. 자기 절제에 있어 많이 흔들리고 있는 요즘, 적절한 시기에 잘 읽은것 같다. 하버드에 가는 자체만으로도 뛰어난 것이다. 하지만 하버드 출신이 인정받는 것은 그들의 대학 생활에 근거가 있다. 학문에 대한 엄청난 열정과 다방면이 아닌 자신있는 한 분야로의 탐구, 스스로 학습을 할 수 있게 지도를 해주는 교수진들, 자기절제에 능한 사람을 먼저 만들어주는 학교의 의지 등 다양한 것들이 책속에 담겨 있다. 그 중에 특히나 시간에 대한 내용과 매 순간 놀고 싶은, 놓고 싶은 욕망과 다투는 것에 대한 내용이 와닿았고 배우고 싶은 내용이었다. 아래는 책 속의 내용중 기억해두고 싶은, 인상깊은 글들이다. > 하버드에서 박사과정을 밟는 학생들은 사흘..

    색종이 만들기[백준 2630] - python

    색종이 만들기[백준 2630] - python

    import sys input = sys.stdin.readline def BOJ2630() : global N global graph global white global blue N = int(input()) graph = [] white = 0 blue = 0 def dfs(x, y, length) : global N global graph global white global blue flag = True for i in range(x, x + length) : for j in range(y, y + length) : if graph[x][y] != graph[i][j] and visited[i][j] == False and flag: flag = False break if flag : for i i..

    최소 힙[백준 - 1927] - python

    최소 힙[백준 - 1927] - python

    import heapq, sys def BOJ1927() : n = int(sys.stdin.readline()) list = [] for _ in range(n) : command = int(sys.stdin.readline()) if command == 0 : if len(list) == 0 : print(0) else : print(heapq.heappop(list)) else : heapq.heappush(list, command) BOJ1927() 접근 방법 : 1. 배열에 값을 넣고 매번 배열을 정렬할수 없으므로 heap을 사용하자 2. command가 0일때 와 아닐때 0일때는 비어있는지 아닌지만 판단해서 값을 잘 반환해주면 된다 장애물 이였던 것 : 1. 힙의 쓰임새가 익숙치 않았다. ht..

    숨바꼭질 4

    숨바꼭질 4

    def BOJ13913(): n, k = map(int, input().split()) graph = [1e9] * 100001 queue = [] graph[n] = 0 queue.append([n, 0]) dict = {n: n} while queue: current_node, current_time = queue.pop(0) next_time = current_time + 1 next_node = current_node - 1 if 0

    숨바꼭질 [백준 1697] - python

    숨바꼭질 [백준 1697] - python

    def BOJ1679(): n, k = map(int, input().split()) graph = [1e9] * 100001 queue = [] graph[n] = 0 queue.append([n, 0]) while queue: current_node, current_time = queue.pop(0) next_node = current_node - 1 if 0