목록백준 (31)
개발 무지렁이

오큰수 / 스택 🥞 🎠. '스택(Stack)'에 값이 아닌 '인덱스(index)'를 넣어 문제를 해결할 줄 알아야 한다. [시간초과 난 코드.py] N = int(input()) stack = list(map(int, input().split())) # print(stack) len = len(stack) res = [] ano_stack = [] for i in range(len): # print("res:", res) cur = stack.pop() # print("cur:", cur) if i == 0: res.append(-1) ano_stack.insert(0, cur) continue # print("ano_stack", ano_stack) flag = 0 for ..

수열 / 슬라이딩 윈도우 🚠 🎠. '슬라이딩 윈도우'알고리즘을 구현할 줄 알아야한다 => '이전의 계산한 결과'를 최대한 이용하는 방식으로 [시간초과 난 코드.py] N, K = map(int, input().split()) tempers = list(map(int, input().split())) # print(tempers) sum_prev = sum(tempers[:K]) for i in range(1, len(tempers)-K): cur = sum(tempers[i:K+i]) sum_prev = max(sum_prev, cur) print(sum_prev) 🤡. 실수한 부분 : 이전에 계산한 결과를 써먹지 못했다. [성공한 코드.py] N, K = map(int, i..

치킨배달 / 조합 🛒 🎠. 'itertools 모듈'을 이용해 'combinations()'를 사용하여 조합을 구할 줄 알아야 한다. 🎠. 조합을 구해 '각 경우를 돌 때', 이 for in문은 '가장 바깥에' 위치해야 한다. => '경우에 따른 결과'를 구해야 함으로 🎠. 이전 값과 비교할 때, '이전값을 할당하는 변수'는 'for in문 바깥'에 위치해야 한다. => '(현재값과 이전값에 대한)'비교는 for in문 안에서 import itertools import sys N, M = map(int, input().split()) arr2d = [] for _ in range(N): ar..

단어 맞추기 🪅. 'next permutation' 알고리즘의 구현에 대해서 알고있어야 한다. 🪅. 일부분만 정렬하는 내장 메서드에 대해 알고있어야 한다. => 'Arrays.sort(arr, start, end+1);' 🪅. 배열을 바로 문자열로 만들고 싶을 때 => 'new String(arr);' ❓. next permutation(다음 순열)이란 : 주어진 현재 순열에서 사전순으로 다음에 오는 순열을 구하는 알고리즘을 말한다. (1). 배열의 뒤에서부터 탐색하며, arr[i-1] < arr[i]를 만족하는 i-1값(가장 큰 인덱스)을 구한다. (조건을 만족하는 인덱스가 없을 경우 현재 순열이 마지막 순열이다.) (2). 다시, 배열의 뒤에서부터 탐색하며 ..

경비원 🪅. if-else if문을 쓸 때는 '명확한 기준'에 의해서 나눠야한다. => 되도록 &&를 쓰지 않는다, 헷갈린다. 🪅. if문으로 나누기보단 'Math.min( , )'을 자주 이용하자. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringTokenizer; public class B2564_경비원 { static int w; static int h; static int num; static int[][] coords; static int x; static int y..

야구 🪅. 반복문을 돌릴때마다 조건에 맞는 '초기화'를 했는가? => 다음 반복에 영향을 주지 않게 🪅. 일의 순서를 따질 때, '완전탐색 순열'을 생각해서 구현할 수 있는가? => '백트래킹' 🪅. 순열의 '작업'과 문제 조건에 맞는 '로직'을 '분리'시켰는가 => 하나의 메서드는 '하나의 기능'만을 수행 🪅. '전역변수'의 사용을 남용하지 않았는가? => '하나의 메서드 안'에서만 로직에 사용되는 데이터는 '지역변수'에 대입 import java.io.BufferedReader; import java.io.IOException; import java.io.In..