목록전체 글 (120)
기술 블로그
클로저는 함수와 그 함수가 선언된 렉시컬 환경의 조합- mdn function outer(){ const name = 'kyle'; console.log(name) return function inner(){ const greeting = 'hello!' console.log(greeting,name) } } const getKyle = outer() //kyle getKyle() //hello!kyle inner함수는 자신이 생성될 때의 환경을 "기억"한다. 이 환경은 클로저가 선언된 시점의 변수뿐만 아니라, 그 변수들이 존재했던 외부 함수의 스코프를 포함한다. 여기서 스코프는 변수가 가지는 유효 범위를 의미한다. 렉시컬 환경(Lexical Environment)은 코드가 작성된 구조와 위치에 기반하여..
스택 문제 from collections import deque def solution(s): answer = True stack = [] # (로 열렸으면 )로 닫혀야됨 for i in s: if i=='(': stack.append('(') if i==')': if len(stack) == 0: return False popE = stack.pop() if popE != '(': return False if len(stack) != 0: return False # [실행] 버튼을 누르면 출력 값을 볼 수 있습니다. print('Hello Python') return True
잘못된 코드 def solution(name): #위 알파벳 다음 , 아래 알파벳 이전 , #name: 만들어야되는 것 #return: 최소 횟수 #1.해당 문자에서 A가 아닌 변경해야하는것의 위치 #2.그 위치에 따른 최단 커서 이동 #3.각 알팟에서의 최단 커서이동 #jklmnopqrstuvwxyz count = 0 abcstr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' # 26개 25:1 abc = list(abcstr) lenName = len(name) nameArr = list(name) r = 0 l = 0 #a가 아닌것이 앞에서 가까운가 뒤에서 가까운가 # 방향 처리 for i in range(1,lenName): if name[i]!..
Java의 기본적인 부분부터 고급 기능에 대해 이야기해보려 한다. 먼저, Java에서 EOF(End of File)는 입력의 끝을 나타내며, 이를 사용해 무한 루프에서 탈출할 수 있다. Scanner의 hasNext() 또는 hasNextLine() 메서드를 사용하여 입력 스트림에 다음 토큰 또는 라인이 있는지 확인하고, 없다면 루프를 탈출할 수 있다. Scanner scanner = new Scanner(System.in); while (scanner.hasNextLine()) { String input = scanner.nextLine(); System.out.println(input); } Java에서 예외 처리는 프로그램이 예외 발생 시 안정적으로 동작하도록 돕는 메커니즘이다. throw 키워드를..
객체지향 프로그래밍: 인스턴스와 클래스, 동적 바인딩 이해하기 인스턴스와 객체의 차이 인스턴스와 객체의 차이를 이해하려면 먼저 클래스의 개념을 알아야 한다. 클래스는 객체를 생성하기 위한 템플릿이다. 객체는 클래스에서 정의한 것을 바탕으로 메모리에 할당된 상태를 말하며, 인스턴스는 특정 클래스로부터 생성된 객체를 의미한다. 클래스를 설계도에 비유한다면, 객체는 설계도로부터 만들어진 실제 제품이고, 인스턴스는 그 제품이 어떤 설계도로부터 만들어졌는지를 명시할 때 사용하는 용어다. 인스턴스 변수와 클래스 변수 인스턴스 변수는 클래스로부터 생성된 각 객체에 할당되는 변수이다. 이 변수는 객체마다 별도로 존재하며, 객체의 상태를 나타낸다. 클래스 변수는 클래스에 속한 변수로, 해당 클래스의 모든 객체가 공유한다..
def solution(n, lost, reserve): #인접한 학생'한명'에게 대여줄수있음 #여벌은 단 하나 # 제한사항을 잘 고려할것 여벌을 가져온 학생이 도난당했을 수도 있음 mans = [1]*(n+2) # 20201111 for j in reserve: mans[j]+=1 for i in lost: mans[i]-=1 for m in range(1,n+1): if mans[m] == 2: if mans[m-1]==0: mans[m-1] += 1 continue if mans[m+1]==0: mans[m+1] += 1 print(mans) answer = 0 for k in range(1,n+1): if mans[k] >= 1: answer += 1 return answer