자료형이란 데이터가 어떤 형태인지를 설명해주는 역할을 한다.자료형 (Data Type)의 크기 단위 1byte = 8bit, 1KB = 1024byte, 1MB = 1024KB, 1GB = 1024MB, 1TB = 1024GB(=2^40 byte)1bit는 2가지를 표현할 수 있다. -> 8bit(1byte)는 256가지의 상태를 표현할 수 있다. (즉, 2^bit 수) 256가지의 경우의 수를 가지고 표현할 수 있는 수의 범위는 ? 0이 포함되므로 255까지 표현할 수 있다. 정수형 자료형 종류 : char(1byte), short(2byte), int(4byte), long(4byte), long long(8byte) 1. 1byte로 양수만 표현 unsigned char c1 = 0;c1는 1..
컴퓨터라는 장치 자체는 전기적 신호로 되어있다. 전류의 차단, 흐름이라는 두가지 상태 케이스의 개념을 0과 1에 부여했다. 즉, 컴퓨터에게 있어서 0과 1은 전기적 신호이다. 이것을 바탕으로 컴퓨터는 명령을 이해한다. 따라서 컴퓨터의 "언어"는 0과 1로 표현하는 "2진수"로 구성되어 있다. 그리고 명령어(2진수로 되어있는 데이터)를 컴퓨터가 받아들여 실행한다. 언어초창기에는 우리가 컴퓨터의 명령을 직접 알고 있어야 했다. 특정 명령어를 넣어주면 CPU가 특정 동작을 취한다는 방식이다. 하지만 CPU의 제조사마다, 버전마다 명령어가 달랐다. 각자 다른 명령어를 전부 암기할 수 없으므로 명령어가 통일되며 만들어진게 "운영체제(OS ; Operating System)"이다. 이제는 OS가 요구하는 명령..
주의사항- 조건을 처음부터 만족할 수 없을 때나 만족했을 때 '바로' 반환할 수도 있다. 입출력 ## 1.입력# 1-1.경로 설정# 1-1-1.파이참에서 실행할 때# 전체 파일 실행import syssys.stdin = open('C:/Users/lsh31/PyCharmMiscProject/njh/input.txt', 'r')T = int(input())print(T)# 한줄씩 실행input = open('C:/Users/lsh31/PyCharmMiscProject/njh/input.txt', 'r')T = int(input.readline())print(T)# 1-1-2.삼성 사이트에서 실행할 때 (sys 없이 바로 시작)T = int(input())# 1-2. 입력 받기N = int(inpu..
백트래킹, BFS, DFS, 암시적BFS, 암시적DFS, 다익스트라, 위상정렬, DP 백트래킹트리 구조를 그려보고 반복되는 부분을 for문에 구성 (추가 반복이 필요하면 함수 밖도 고려)큰 구조는 base case와 repeat만약 중간에 탈출하려면 base case에 return을 해주고 함수를 아예 끝내려면 함수 호출을 하면서 return append-backtracking()-pop은 하나의 세트 (append를 했으면 pop을 해야하고, backtracking에 바로 넣으면 상관 없음)backtracking 인자에 다른 것도 넣을 수 있다. nums = [1, 2, 3, 4, 5]output = []def backtracking(curr): # base case if len(curr) ..
https://www.acmicpc.net/problem/14502 문제설명바이러스의 확산을 막기 위해서 연구소에 벽 세우기벽을 세운 뒤 바이러스가 퍼질 수 없는 안전 영역의 최댓값 구하기 문제해결조건연구소의 크기 : N x M 직사각형 (직사각형은 1 x 1 크기의 정사각형으로 나누어져 있다.)연구소의 구성 : 빈 칸(0), 벽(1), 상하좌우로 퍼지는 바이러스 (2)새로 세울 수 있는 벽은 무조건 3개로직현재 빈 칸들 중 3개를 선택해서 벽 세우기 (조합 이용)바이러스를 퍼뜨리는 역할을 하는 BFS 실행, board 모두를 확인해야 하므로 바깥 for문 필요확산 후 안전영역 개수 세고 최댓값 갱신벽 되돌리기row_len, col_len = map(int, input().split())board =..
https://leetcode.com/problems/shortest-path-in-binary-matrix/description/ 문제설명nxn으로 구성된 행렬 grid가 주어질 때, (0,0)에서 (n-1,n-1)로 가는 가장 짧은 길의 길이를 구해라. 갈 수 없으면 -1. 0으로 구성된 칸에만 갈 수 있다. 문제해결가장 짧은 길이를 구하는 거니까 BFS 사용방향 주의하자 ! 4방향이 아니라 8방향으로 주어짐현재 위치 뿐만 아니라 현재 길이도 같이 저장하자. 현재 위치가 n-1이면 다온거니까 여기에 저장되어 있던 길이를 반환하면 된다. (BFS를 사용했으므로 가장 먼저 조건에 만족된 값이 가장 짧은 값!)(n-1, n-1) 위치에 도착하지 않았는데 더 이상 갈 곳이 없을 수도 있다. bfs 함수 마..
https://leetcode.com/problems/number-of-islands/description/ 문제설명grid가 땅(1)과 물(0)으로 구성되어 있을 때, 섬(물로 둘러싸져 있고 땅으로 구성된)은 몇 개 만들 수 있는지 ? 문제해결grid 전체를 탐색해봐야 하는데 하나로 연결되어 있지 않을 수 있으니까 전체적인 visit 필요만약 방문하지 않았고 해당 값이 “1”이면 -> bfs/dfs 실행 -> 끝나면 +1개class Solution: def numIslands(self, grid: List[List[str]]) -> int: def dfs(cur_r, cur_c): visit[cur_r][cur_c] = True dr = [0,..
https://school.programmers.co.kr/learn/courses/30/lessons/17680 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제설명DB 캐시를 적용할 때 캐시 크기에 따른 실행 시간 측정 프로그램 작성LRU(Least Recently Used) 방법 사용 문제해결현재 값이 캐시 리스트 안에 있으면현재 값 제거 후 맨 끝에 append, 실행시간+1현재 값이 캐시 리스트 안에 없으면꽉 찾으면 : popleft, append, 실행시간 + 5비었으면 : append, 실행시간 + 5def solution(cacheSize, cities): from collecti..
https://leetcode.com/problems/two-sum/description/ 문제설명정수로 구성된 리스트가 주어질 때, 두개의 숫자를 더해 target이 되는 인덱스를 반환 문제해결2중 for문class Solution: def twoSum(self, nums: List[int], target: int) -> List[int]: for i in range(len(nums)-1): for j in range(i+1, len(nums)): if nums[i]+nums[j] == target: return [i, j] 백트래킹class Solution: def twoSum(self, nu..
https://school.programmers.co.kr/learn/courses/30/lessons/118670 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr1. 문제설명행렬이 주어질 때 operations (Rotate, ShiftRow)를 순서대로 실행한 후 행렬의 결과 반환 2. 문제해결[첫번째 코드]def solution(rc, operations): from collections import deque new_rc = deque([]) for r in rc: new_rc.append(deque(r)) row_len = len(rc) for op..