어디까지 갈 수 있을까?
문제링크 www.acmicpc.net/problem/3190 사과를 먹으면 몸이 길어지는 뱀이 몇 초부터 이동을 못하게 되는지 구하는 문제이다 [답코드] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 import sys input=sys.stdin.readline n=int(input()) #보드의 크기 board=[[-1]*n..
오버로딩 오버라이딩 제네릭 객체지향 interface abstract JVM 클래스 속성과 기능의 집합, 설계도 객체 클래스 인스턴스 모두 포함 인스턴스 객체를 new해 힙 공간에 올린 것 싱글톤 패턴 하나의 인스턴스만 생성해 사용하는 것 new 객체 생성 메모리구조 데이터 영역 프로그램의 시작과 함께 할당, 프로그램 종료되면 소멸 스택 영역 함수 호출과 함께 할당, 호출 완료되면 소멸 힙 영역 사용자 할당(new를 통해) BufferedReader 가변 길이 문자열 받음 파라미터(매개변수) 함수 선언 시 정의되는 변수 아규먼트(전달인자) 함수 호출 시 전달하는 값 final 값을 정의하고 다시 바꾸지 않을 때 사용 반드시 초기화 해줘야 한다 static 정적 데이터 프로그램 실행 직후부터 끝날때 까지 ..
키워드로 문제풀기 엔티티 개념 엔티티 -> 테이블(릴레이션) 인스턴스 -> 행(튜플) 속성 -> 열 속성값 엔티티는 두 개 이상의 인스턴스의 집합으로 이루어짐 엔티티는 다른 엔티티와 최소 한 개 이상의 관계가 있어야 함 한 개의 엔티티는 두 개 이상의 속성을 갖는다 이름에 약어 사용은 자제 속성 명칭은 전체 데이터모델에서 유일성을 확보하는 것이 좋다 하나의 속성은 한 개의 속성값을 갖는다 엔티티 종류 유개사 기중행 ERD 표기(개속관) □ 개체 -> 테이블 ○ 속성 -> 열 ◇ 관계 -> PK, FK 모델링 순서(개논물) 개념적 데이터 모델링(ERD) -> 논리적 데이터 모델링(표) -> 물리적 데이터 모델링 도메인 : 제약조건(타입, 길이 등 카디널리티 : M:M, M:1, 1:1 ... 역정규화 : ..
문제링크 programmers.co.kr/learn/courses/30/lessons/60057 카카오 문제는 예제외에 다른 테스트케이스들도 많이 생각하고 돌려야하는 것 같다 [답코드] 시도 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 def solution(s): #시뮬레이션 문제? answer = len(s) if len(s)==1: return 1 #반복 문자열 갯수 for i in range(1, (len(s) // 2)+1): simul_answer=0 #인덱스 re=0 #반복 횟수 for j in range(0, len(s)-i, i): if s[j:j+i]==s[j+i:j+2*i]:..
deque -선입선출 - BFS from collections import deque q=deque() q.append('l') q.popleft() heapq -최소힙, 최대힙 -다익스트라, 최소값이나 최대값을 빨리 찾아야 할 때 from heapq import heappush, heappop, heapify q=[] heappush(q, 1) heappop(q) heapify(arr)
문제링크 programmers.co.kr/learn/courses/30/lessons/42891 [답코드] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 import heapq def solution(food_times, k): q=[] #(시간, 인덱스) for i in range(len(food_times)): heapq.heappush(q, (food_times[i], i+1)) pre_food=0 now_food=q[0][0] n=len(food_times) while True: #바퀴수당으로 생각하기 if k - (now_food - pre_food) *n
문제링크 www.acmicpc.net/problem/10775 고통의 시간을 거치고 드디어 맞았다!! 🎉👏🎉👏 [답코드] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 import sys input=sys.stdin.readline sys.setrecursionlimit(10**6) # 최대 재귀 깊이 제한 늘림 # 특정 원소가 속한 집합을 찾기 def find_parent(parent, x): # 루트 노드가 아니라면, 루트 노드를 찾을 때까지 재귀적으로 호출 if parent[x] != x: parent[x] = find_parent(parent..
2. 플로이드 워셜 알고리즘 모든 노드 간 최단 거리를 구하는 알고리즘 출발노드에서 도착노드로 바로 가는 거리와 중간노드를 거쳐가는 거리 중 짧은 거리를 선택한다 2차원 배열을 생성해 중간노드를 갱신하는 횟수를 노드 갯수만큼 반복한다 시간복잡도는 O(N^3)이다 ① 테이블 초기화 ② 1번 노드를 거쳐 가는 경우 1번 노드와 관련된 노드, 출발노드와 도착노드가 같은 칸을 제외하고 확인해야한다. 1번 노드를 제외한 2번, 3번, 4번 노드에서 2개의 노드를 뽑는 경우를 고려해야 한다. 그러므로 고려해야할 칸은 모두 6 = 3P2 개다(주황색) D23=min(D23, D21+D13) D24=min(D24, D21+D14) D32=min(D32, D31+D12) D34=min(D34, D31+D14) D42=m..