분류 전체보기
[ TIL ] 파이썬 전역변수와 지역변수
✍ 전역변수와 지역변수 0. 메인스크립트에 선언되면 전역변수 def DFS1(): # ✨ def 1 print(cnt) def DFS2(): # ✨ def 2 if cnt == 5: print(cnt) if __name__ == '__main__': cnt=5 # ✨ 1 DFS1() # ✨ def 1 DFS2() # ✨ def 2 print(cnt) 1 : 전역변수 이 한 줄에 담긴 의미 : cnt라는 변수가 생성되고 5라는 값이 할당됨. 변수의 생성과 값 할당까지 다 가지고 있다. 기본적으로 전역변수는 모든 함수가 접근할 수 있고 값도 변경할 수 있는 공용의 값이다. 이 전역변수가 읽힌 다음 전역변수 안에 있는 함수 DFS1()과 DFS2()를 읽어내려가게 되는데 def 1 : 함수 1. cnt라는 변..
[ TIL ] React.PureComponent란
0. 이용 목적 이용 목적을 알기 위해서는 react에 존재하는 component들에 대해서 알 필요가 있다. ✍ React.Component ES6 class를 사용하여 React 컴포넌트를 정의할 때 기초가 되는 class이다. shouldComponentUpdate를 따로 설정하지 않으면 항상 true를 반환한다. => setState 실행 시 무조건적으로 컴포넌트가 업데이트된다. ✍ React.PureComponent props와 state를 이용하여 React 컴포넌트를 정의할 때 기초가 된다. shouldComponentUpdate는 props와 state의 얕은 비교(shallow compare) 을 통해 비교한 뒤 => 변경사항이 있을 시 : true => 리렌더링 => 변경사항이 없을 시..
[ 백준 17298] ( python ) 오큰수
📚 오큰수 문제 크기가 N인 수열 A = A1, A2, ..., AN이 있다. 수열의 각 원소 Ai에 대해서 오큰수 NGE(i)를 구하려고 한다. Ai의 오큰수는 오른쪽에 있으면서 Ai보다 큰 수 중에서 가장 왼쪽에 있는 수를 의미한다. 그러한 수가 없는 경우에 오큰수는 -1이다. 예를 들어, A = [3, 5, 2, 7]인 경우 NGE(1) = 5, NGE(2) = 7, NGE(3) = 7, NGE(4) = -1이다. A = [9, 5, 4, 8]인 경우에는 NGE(1) = -1, NGE(2) = 8, NGE(3) = 8, NGE(4) = -1이다. 입력 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에 수열 A의 원소 A1, A2, ..., AN (1 ≤ Ai ..
[ 백준 10799 ] ( python ) 쇠막대기
📚 쇠막대기 문제 여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저의 배치는 다음 조건을 만족한다. 쇠막대기는 자신보다 긴 쇠막대기 위에만 놓일 수 있다. - 쇠막대기를 다른 쇠막대기 위에 놓는 경우 완전히 포함되도록 놓되, 끝점은 겹치지 않도록 놓는다. 각 쇠막대기를 자르는 레이저는 적어도 하나 존재한다. 레이저는 어떤 쇠막대기의 양 끝점과도 겹치지 않는다. 아래 그림은 위 조건을 만족하는 예를 보여준다. 수평으로 그려진 굵은 실선은 쇠막대기이고, 점은 레이저의 위치, 수직으로 그려진 점선 화살표는 레이저의 발사 방향이다. 이러한 레이저와 쇠막대기의 배치는 다음과 같이 괄..
[ 백준 17413] ( python ) 단어 뒤집기 2
📚 단어 뒤집기 2 문제 문자열 S가 주어졌을 때, 이 문자열에서 단어만 뒤집으려고 한다. 먼저, 문자열 S는 아래와과 같은 규칙을 지킨다. 알파벳 소문자('a'-'z'), 숫자('0'-'9'), 공백(' '), 특수 문자('')로만 이루어져 있다. 문자열의 시작과 끝은 공백이 아니다. ''가 문자열에 있는 경우 번갈아가면서 등장하며, ''에 도달할 때까지의 값은 유지된다 ==> 유지시키면 된다 숫자 / 소문자 while문으로 연속해서 등장하는 숫자 / 소문자의 위치를 찾아 뒤집은 연속된 숫자 / 소문자로 대치시키면 된다 공백 공백은 무시하고 넘어가면 된다 틀린 코드 (시간초과) import sys line = list(sys.stdin.readline().strip()) lt = 0 res="" wor..
[ 백준 10866 ] ( python ) 덱
📚 덱 문제 정수를 저장하는 덱(Deque)를 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오. 명령은 총 여덟 가지이다. push_front X: 정수 X를 덱의 앞에 넣는다. push_back X: 정수 X를 덱의 뒤에 넣는다. pop_front: 덱의 가장 앞에 있는 수를 빼고, 그 수를 출력한다. 만약, 덱에 들어있는 정수가 없는 경우에는 -1을 출력한다. pop_back: 덱의 가장 뒤에 있는 수를 빼고, 그 수를 출력한다. 만약, 덱에 들어있는 정수가 없는 경우에는 -1을 출력한다. size: 덱에 들어있는 정수의 개수를 출력한다. empty: 덱이 비어있으면 1을, 아니면 0을 출력한다. front: 덱의 가장 앞에 있는 정수를 출력한다. 만약 덱에 들어있는 정수가 없는..
[ 백준 1158] ( python ) 요세푸스 문제
📚 요세푸스 문제 문제 요세푸스 문제는 다음과 같다. 1번부터 N번까지 N명의 사람이 원을 이루면서 앉아있고, 양의 정수 K(≤ N)가 주어진다. 이제 순서대로 K번째 사람을 제거한다. 한 사람이 제거되면 남은 사람들로 이루어진 원을 따라 이 과정을 계속해 나간다. 이 과정은 N명의 사람이 모두 제거될 때까지 계속된다. 원에서 사람들이 제거되는 순서를 (N, K)-요세푸스 순열이라고 한다. 예를 들어 (7, 3)-요세푸스 순열은 이다. N과 K가 주어지면 (N, K)-요세푸스 순열을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) 출력 예제와 같이 요세푸스 순열을 출력한다. 예제 입력 1 7 3 예제 출력 1 ✍ 접근 ..
[ 백준 10845] ( python ) 큐
📚 큐 문제 정수를 저장하는 큐를 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오. 명령은 총 여섯 가지이다. push X: 정수 X를 큐에 넣는 연산이다. pop: 큐에서 가장 앞에 있는 정수를 빼고, 그 수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다. size: 큐에 들어있는 정수의 개수를 출력한다. empty: 큐가 비어있으면 1, 아니면 0을 출력한다. front: 큐의 가장 앞에 있는 정수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다. back: 큐의 가장 뒤에 있는 정수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다. 입력 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다...