목록분류 전체보기 (770)
컴공생의 다이어리
백준 16954번 : 움직이는 미로 탈출 (문제 바로가기) 내 코드 import sys from collections import deque input = sys.stdin.readline wall_pos = set() # 벽 위치 for i in range(8): temp = input().rstrip() for j in range(8): if temp[j] == '#': wall_pos.add((i, j)) queue = deque([(7, 0)]) # 캐릭터 시작 위치 넣기 result = 0 direction = [(i, j) for i in range(-1, 2) for j in range(-1, 2)] # 이동할 수 있는 모든 방향 while queue and wall_pos: temp = s..
백준 16637번 : 괄호 추가하기 (문제 바로가기) 내 코드 N = int(input()) data = list(map(lambda x: int(x) if x.isdigit() else x, input())) result = -int(1e9) def calculate(num1, num2, s): # 연산자 s에 따라 계산처리 if s == '+': return num1 + num2 elif s == '-': return num1 - num2 elif s == '*': return num1 * num2 def dfs(idx, prev): global result if idx >= N: # 연산이 끝났을 때 result = max(result, prev) # 최댓값 갱신 return if idx + 3 <..
Java 배열 일괄 초기화 - Arrays.fill() 자바에서 배열의 모든 값을 지정한 값으로 초기화하는 메서드로 Arrays.fill()이 있다. 기존에 아래와 같이 for문을 사용해서 배열의 값을 초기화하지 않고도 간편하게 배열의 값을 초기화할 수 있다. int arr[] = new int[10]; for (int i = 0; i < arr.length; i++) { arr[i] = -1; } 1차원 배열 초기화 Arrays.fill(배열 변수, 초기화할 값) 의 인자를 넣어서 초기화하면 된다. 예시는 아래와 같다. import java.util.Arrays; public class ArrayFill { public static void main(String[] args) { int arr[] = ..
Python 빠른 입출력 파이썬에서 빠르게 데이터를 입출력하기 위해서는 sys 라이브러리를 활용하면 된다. 이 글에서는 빠른 입출력에 대해 정리하고자 한다. 빠른 입력 import sys data = sys.stdin.readline().rstrip() sys.stdin.readline() 으로 빠른 입력을 받을 수 있다. 이때, 데이터에 줄바꿈 문자(\n)가 포함되어 입력받아진다는 점을 주의해야 한다. 그렇기 때문에 입력을 받고 나서 rstrip() 함수를 사용하여 줄바꿈 문자를 제거해주어야 한다. 그리고 매번 sys.stdin.readline()을 계속 작성해주는 것이 번거로울 수 있다. 그럴 땐 변수에 저장해서 사용하는 방법을 활용할 수 있다. 아래의 경우에는 input이라는 변수에 저장을 하는데,..
백준 17779번 : 게리맨더링 2 (문제 바로가기) 내 코드 import sys input = sys.stdin.readline def simulation(x, y, d1, d2): section = [0] * 5 # 구역별 인구 수 temp_c = y for r in range(x + d1): # 1구역 인구 합 구하기 if r >= x: temp_c -= 1 section[0] += sum(data[r][0:temp_c + 1]) temp_c = y - d1 - 1 for r in range(x + d1, n): # 3구역 인구 합 구하기 section[2] += sum(data[r][0:temp_c + 1]) if r < x + d1 + d2: temp_c += 1 temp_c = y + 1 fo..
백준 2023번 : 수들의 합 5 (문제 바로가기) 내 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class baekjoon_2023 { private static int N; private static StringBuilder sb = new StringBuilder(); public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); N = Integer.parseInt(br.readLin..
[NestJS] Task Scheduling NestJS에서 주기적으로 반복적인 작업을 처리하는 Task Scheduling을 위해서는 @nestjs/schedule 패키지를 활용하면 된다. 이 글에서는 Task Scheduling에 대해서 정리해보고자 한다. 제일 먼저 Task Scheduling에 필요한 패키지인 @nestjs/schedule과 @types/cron를 아래 명령어로 설치해준다. $ npm install --save @nestjs/schedule $ npm install --save-dev @types/cron scheduler 사용을 위해 @nestjs/schedule 패키지에 포함된 ScheduleModule을 import를 해줘야 한다. 공식문서에는 AppModule에 아래와 같이..
[NestJS] Global prefix NestJS로 api를 개발하면서 모든 api 주소에 아래와 같이 일일히 /api를 붙여주고 있었다. @Controller('api/test1') export class Test1Controller {} @Controller('api/test2') export class Test2Controller {} 공통적으로 api라는 prefix가 붙는 것에 대해 전역으로 설정해줄 수 있는지 찾아보다 setGlobalPrefix로 전역 설정이 가능한 것을 알게 되었다. src/main.ts 파일에서 아래와 같이 setGlobalPrefix() 메소드로 prefix를 한번에 전역 설정할 수 있다. const app = await NestFactory.create(Applic..
[프로그래머스] 자동차 대여 기록 별 대여 금액 구하기 - MySQL WITH RENT_INFO AS ( SELECT HISTORY_ID, DATEDIFF(END_DATE, START_DATE) + 1 AS RENT_DAYS, DAILY_FEE, CAR_TYPE, CASE WHEN DATEDIFF(END_DATE, START_DATE) + 1 >= 90 THEN '90일 이상' WHEN DATEDIFF(END_DATE, START_DATE) + 1 >= 30 THEN '30일 이상' WHEN DATEDIFF(END_DATE, START_DATE) + 1 >= 7 THEN '7일 이상' ELSE '' END AS DURATION_TYPE FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY..
[Git] credential 정보 초기화 깃 인증 정보를 저장해주는 credential 정보를 초기화해주는 방법에 대해 정리하고자 한다. (이 글은 윈도우 기준으로 작성되었지만 초기화 명령어에 있어 Mac, Linux OS에서도 크게 다르지 않을 것이라고 생각한다.) 우선 cmd 혹은 git bash를 관리자 권한으로 실행시킨다. 그리고 상황에 맞게 아래 명령어 중 골라서 입력하면 된다. // local에서 unset $ git config --local --unset credential.helper // global에서 unset $ git config --global --unset credential.helper // system에서 unset // : 시스템의 모든 사용자, 시스템의 모든 repo..