전체 글 155

[LeetCode] Permutations

https://leetcode.com/problems/permutations/   문제 파악주어진 배열로 만들 수 있는 모든 순열 구하기1 10 All the integers of nums are unique. (요소 중복 허용)접근 방법💡 -재귀 함수가 리턴되면 마지막에 호출한 함수가 가장 먼저 리턴-리턴 되면 리스트에서 해당 원소 삭제, 방문 배열 초기화 - : 중복 허용, 순서 존재-방문 배열은 하나의 순열 안에서 이루어지는 것을 유의하자.해당 원소에 해당하는 경우의 수를 모두 순회하면서 겹치지 않게 표시 코드 구현import java.util.*;class Solution { //순열 문제 : 중복 허용, 순서 존재 public List> permute(int[] nums) { ..

[LeetCode] Combinations

https://leetcode.com/problems/combinations/ 문제 파악주어진 1~n까지의 범위 중에서, k개의 원소를 갖는 숫자 ‘조합’ 구하기1 1 접근 방법💡 backtrack() 함수 정의하여, 가장 작은 단위의 연산을 정의하고, 재귀적으로 해당 함수를 호출한다. 코드 구현class combinations { public List> combine(int n, int k) { //1~n까지 숫자 중에 k개를 짝지은 조합을 찾아내기 List> result = new ArrayList(); int start = 1; //시작점을 값으로 전달해주기. // 함수에 유동적으로 인자를 주고 싶을 때 사용, 함수에 인자가 증가하며 삽입될..

[LeetCode] Subsets

https://leetcode.com/problems/subsets/description/문제 파악주어진 배열에서 나올 수 있는 subset 모두 구하기(조합)1 10 All the numbers of nums are unique.접근 방법💡 -combination으로 순서가 없는 리스트를 담아 최종 result에 적재-”combinations” 문제와 흡사-조건 걸지 않고 조합 만들어지는대로(길이n) 결과로 반환하는 것이 포인트 코드 구현import java.util.*;class Solution { public List> subsets(int[] nums) { List> result = new ArrayList(); List curr = new ArrayList(); ..

[프로그래머스] 피로도

피로도https://campus.programmers.co.kr/tryouts/140902/challenges  문제 파악💡 -dfs, bfs, dp로도 풀 수 있는 문제-가진 체력으로 각 던전을 돌며 최대 던전 돌 수 있는 횟수 구하기-똑같은 게 계속 반복된다. ⇒ 작은 문제로 줄여서 풀기 (재귀)-순차적으로 돌 필요 없고 어떤 조합이든 많이 돌 수 있는 방법 찾기.k는 1 이상 5,000 이하인 자연수입니다.dungeons의 세로(행) 길이(즉, 던전의 개수)는 1 이상 8 이하입니다.dungeons의 가로(열) 길이는 2 입니다.dungeons의 각 행은 각 던전의 ["최소 필요 피로도", "소모 피로도"] 입니다."최소 필요 피로도"는 항상 "소모 피로도"보다 크거나 같습니다."최소 필요 피로도..

[프로그래머스] 소수 찾기

소수 찾기https://campus.programmers.co.kr/tryouts/140903/challenges 문제 파악순열 문제. 가장 효율적인 방법을 찾아보자.numbers는 길이 1 이상 7 이하인 문자열입니다.numbers는 0~9까지 숫자만으로 이루어져 있습니다."013"은 0, 1, 3 숫자가 적힌 종이 조각이 흩어져있다는 의미입니다. 접근 방법💡 permutations 문제와 비슷하지만, curr가 특정 길이 충족되면 result에 추가했던 것과 달리, 가는 도중에 보일 때마다 result에 curr값 추가한다.즉, 길이는 정해지지 않았고 길이가 어떻든 조건 만족하면 리스트에 추가.base case는 카운트되는 것으로 변경소수 구하는 함수는 isPrime() 으로 별도로 선언한다. (리..

[프로그래머스] 후보키

[문제]https://campus.programmers.co.kr/tryouts/140904/challenges  [문제 설명] 후보키프렌즈대학교 컴퓨터공학과 조교인 제이지는 네오 학과장님의 지시로, 학생들의 인적사항을 정리하는 업무를 담당하게 되었다.그의 학부 시절 프로그래밍 경험을 되살려, 모든 인적사항을 데이터베이스에 넣기로 하였고, 이를 위해 정리를 하던 중에 후보키(Candidate Key)에 대한 고민이 필요하게 되었다.후보키에 대한 내용이 잘 기억나지 않던 제이지는, 정확한 내용을 파악하기 위해 데이터베이스 관련 서적을 확인하여 아래와 같은 내용을 확인하였다.관계 데이터베이스에서 릴레이션(Relation)의 튜플(Tuple)을 유일하게 식별할 수 있는 속성(Attribute) 또는 속성의 집..

[Web] 역대 클라이언트-서버 간 통신 방식 총 정리

REST API 방식에 대해 공부를 하려고 하다보니..갑자기 그동안 클라이언트와 서버가 통신하는 방식의 역사가 궁금해졌다.. 지금은 너무나 당연한 방식인데, 과연 예전에는 어땠을까???찾아보니 REST API 형태가 도입되기 전의 통신 방식은 지금과는 좀 달랐다. 그 중에서 특히 많이 사용된 몇 가지를 정리해보자.    1. RPC (Remote Procedure Call)RPC는 클라이언트가 서버에게 "이 함수 좀 대신 실행해줘!"라고 요청하는 방식.클라이언트는 서버에 있는 메서드를 마치 로컬 메서드처럼 호출할 수 있는 것.예를 들면, SOAP이라는 프로토콜이 있다. SOAP는 XML을 기반으로 동작하며, 원격 프로시저 호출을 가능하게 해준다.서버에 요청을 보내고, 서버는 응답을 XML 형식으로 돌려주..

Web 2024.08.11

nodejs로 라우팅 서버 실습해보기!

-라우팅 : 서로 다른 일을 하게 하기 ⇒ 요청에 따른 다른 응답 결과를 보내는 것-요청에 대한 정보-헤더 구성요소요청URL요청 메소드상태코드(응답)지금은 아무것도 안 뜬다..노드의 http 모듈로 서버를 간단히 만들어서 다시 조회해보자포스트맨으로 다시 요청해보기-옵션 추가결과-응답에 대한 정보 추가-응답 형식(MIME)이란? “나 이렇게 응답할거야~”text/plaintext/htmlapplication/json : 자바스크립트 객체 json 형태로 응답등등등…다음을 참고하자.MIME types (IANA media types) - HTTP | MDN MIME types (IANA media types) - HTTP | MDNA media type (also known as a Multipurpose ..

[JAVA] 자바의 컴포넌트 - 자바 빈(Bean) 조건과 필요성

재사용성을 높이기 위한 방법으로 인스턴스를 꼽았었다.이것을 조금 더 큰 덩어리, 즉 컴포넌트로도 활용이 가능하다. (자바의 클래스를 컴포넌트화)자바에서는 재사용을 위한 컴포넌트를 자바 빈(Bean)이라고 부른다.    1. 자바 빈(Bean) 조건💡 [ JavaBean 조건 ]public classpublic 생성자() : 매개변수 없어야 함property용 멤버변수(멤버필드)는 public이면 안됨property용 public setXXX/getXXX 메소드가 필요   이 형태를 취해야 클래스가 자바 빈의 형태를 띄게 된다.   2. 자바 빈(Bean) 필요성 그냥 인스턴스 만들어 쓰는 것으론 부족할까?다 이유가 있다. 그 중 하나가 바로, ■ 필터링 기능 (in 제공자 관점) -Case1 : 나쁜 ..

[JAVA] JIT 컴파일러가 필요한 이유, 자바 인터프리터와 차이점

바이트코드는 JVM의 실행 엔진에 의해 실행된다.공부를 하다보니, 인터프리터와 JIT컴파일러는 둘 다 JRE안에 속해있고바이트 코드를 기계어로 해석하는 점이 비슷해보였다.그럼 둘의 차이가 무엇일까? -> 자바 인터프리터는 바이트 코드를 한 줄씩 읽고 실행하는 방식으로 동작한다.이는 프로그램의 실행이 비교적 느릴 수 있지만, 실행 초기 단계에서는 빠른 시작을 제공한다.JIT컴파일러가 동작하기 전까지 실제로 인터프리터를 초기에 사용한다. ( 느리지만 빠른 시작) -> JIT (Just-In-Time) 컴파일러는 바이트 코드를 기계어로 동적으로 변환하여 실행 속도를 크게 향상시킨다.프로그램 실행 중 자주 사용되는 코드 부분(핫스팟)을 미리 컴파일하여 실행 속도를 최적화한다.JIT 컴파일러는 인터프리터가 처음에..

카테고리 없음 2024.07.29