목록분류 전체보기 (110)
기술 블로그
1. 디자인패턴 라이브러리/프레임워크: 공통으로 사용될 수 있는 특정 기능을 모듈화한 것 디자인 패턴: 프로그램설계시 문제발생을 예방하고 객체 간 상호 관계를 이용해 해결할 수 있도록 한 규약 싱글톤 패턴 하나의 클래스에 하나의 인스턴스만 가지는 패턴 특징 데이터베이스 연결 모듈에 자주 사용 인스턴스를 공유하여 인스턴스 생성 비용 감소 단점 의존성이 높아짐 의존성:소프트웨어 개발에서 한 요소나 모듈이 다른 요소나 모듈에 어떻게 의존하고 있는지를 나타내는 개념 다른 클래스나 모듈에서 해당 싱글톤 인스턴스에 접근할 수 있고 이로인해 코드가 더 긴밀히 결합되어 하나의 클래스나 모듈이 변경되면 다른 클래스나 모듈도 영향을 받을 수 있음 이는 유지보수와 확장성 측면에서 문제을 일으킬 수 있음 → 그러나 의존성 주..
코딩테스트 문제 복기 문제 조건 배열로 아이템이 제공된다. 각 아이템은 name, score 쌍의 데이터를 가진다. score을 기준으로 들어온 아이템을 정렬해야한다. score, 들어온 순으로 우선순위를 가진다. 만약 같은 name으로 기존보다 더 높은 score가 들어온다면 업데이트한다. score순으로 정렬되었을때 특정 갯수(이하 K) 안에서 순위에 변동(순위에 영향을 끼치지 못하는 정도의 score변동은 미해당)이 있을 때 count를 +1 한다. 알맞은 count를 반환하시오 분석 위 문제에 대해 주요 포인트는 2가지 이다. 중복된 name값을 가진 아이템은 업데이트 할것 score값에 따라 정렬할 것 이전 값과 비교하여 변화를 count 할것 3번의 경우에는 최신 업데이트한 rank값과 직전..
100~ 정보 응답 100 클라이언트가 서버에 요청의 초기 부분을 보내도 되는지 확인하고 서버가 준비 되었으면 나머지를 보내도록 요청 즉 상태가 괜찮음을 알리는 임시적 응답 200~ 성공 응답 200 성공 201 요청이 성공적으로 처리되었으며 새로운 리소스 생성 post,put 204 요청이 성공적이었으나 컨텐츠를 제공하지 않음 헤더는 있을 수 있음 300~ 리다이랙션 응답 301 요청한 리소스 url이 영구적으로 변경됨 302 요청한 리소스가 일시적으로 다른 url로 이동 304 클라이언트에게 응답이 수정되지 않았음을 알림 (캐시 유용) 400~ 클라이언트 에러 400 서버가 요청을 이해할 수 없음 401 인증 페이지 혹은 인증 리소스 요청 - 인증필요 403 클라이언트가 콘텐츠에 접근할 권리가 없음 ..
from collections import deque def solution(progresses, speeds): #순서, 속도 #후순위까지 병목 생길시 함께 배포 #뒤 기능은 앞 기능이 배포될때 배포 proQ = deque(progresses) speedQ = deque(speeds) answer = [] d = 0 while True: while proQ: if proQ[0] = 100: speedQ.popleft() proQ.popleft() d += 1 if d>0: print(proQ) answer.append(d) d = 0 for i in range(len(proQ)): proQ[i] += speedQ[i] if len(proQ) == 0: bre..
클로저는 함수와 그 함수가 선언된 렉시컬 환경의 조합- 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