본문 바로가기

전체 글

(96)
[프로그래머스 43162] Lv.3 네트워크 문제 Link https://school.programmers.co.kr/learn/courses/30/lessons/43162 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 Key Point 1 1 0 1 1 0 0 0 1 { 0, 0 } 에서 시작한다. 따라서 0번째 컴퓨터는 이미 하나의 네트워크와 연결되어 있다라고 확인 할 수 있다. 0행의 열 전체를 검사하면서 연결된 컴퓨터가 있는지 확인한다. 0행 1열의 컴퓨터가 즉, 1번째 컴퓨터가 0번 컴퓨터와 연결되어 있다. 1행의 열 전체를 검사하면서 아직 연결이 확인되지 않은 컴퓨터들만 검사한다..
[프로그래머스 43165] Lv.2 타겟 넘버 문제 Link https://school.programmers.co.kr/learn/courses/30/lessons/43165 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 Key Point 입력된 각 숫자마다 + 또는 - 두번씩 계산되어야 한다. 0번째 인덱스의 값을 + 로 계산 한 뒤에 다시 0번째 인덱스의 값을 - 로 계산하는 것이 아니라 1번째 인덱스의 값으로 이동 후 + 계산을 한다. e.g.) + + + + + → + + + + - → + + + - + → + + + - - → + + - + + → .. 예시를 보면 DFS를 이용해야..
[프로그래머스 1829] 카카오프렌즈 컬러링북 문제 Link https://school.programmers.co.kr/learn/courses/30/lessons/1829# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 Key Point 같은 색깔로 이어져있는 영역의 크기와 그 영역들의 갯수를 구해야한다. 따라서, BFS를 이용해야 한다는 것을 알 수 있다. picture의 원소 중 값이 0인 경우는 색칠하지 않은 영역으로 영역으로 카운팅 하지 않는다. Java 풀이 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 ..
DB 트랜잭션(Transaction)과 트랜잭션 격리 수준(Isolation Level) [트랜잭션] 여러 읽기/쓰기를 논리적으로 하나로 묶음으로 하나의 트랜잭션 내에서 여러 쿼리의 결과를 모두 커밋되거나 모두 롤백이 된다. 트랜잭션 범위는 커넥션을 기준으로 따라간다. [트랜잭션 특징] Atomicity(원자성) 트랜잭션은 DB에 모두 반영되거나 전혀 반영되지 않아야 한다. (all or nothing) Consistency(일관성) 트랜잭션 작업 처리결과는 항상 일관성 있어야 한다. Isolation(독립성) 둘 이상의 트랜잭션이 동시 실행되고 있을 때, 어떤 트랜잭션도 다른 트랜잭션 연산에 끼어들 수 없다. Durability(지속성) 트랜잭션이 성공적으로 완료되었으면 결과는 영구히 반영되어야 한다. [트랜잭션의 격리 수준(Transaction Isolation Level)] 트랜잭션을 ..
[프로그래머스 42888] 오픈채팅방 문제 Link https://school.programmers.co.kr/learn/courses/30/lessons/42888 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 Key Point 오픈채팅방 이용 명령어가 "Change"인 경우, 로그에 해당 활동은 출력되지 않는다. 결과 로그를 return할 때, 배열의 크기에서 해당 명령어 갯수만큼 차감 되어야한다. 오픈채팅방 이용 명령어가 "Leave"인 경우, 입력된 record에 이용자의 닉네임 정보가 있지 않다. 입력으로 들어온 split()을 이용해 record를 파싱한 결과가 다른 명령..
[프로그래머스 60057] Lv.2 문자열 압축 문제 Link https://school.programmers.co.kr/learn/courses/30/lessons/60057 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 Key Point 앞에서부터 일정한 간격으로 문자열을 잘랐을 경우, 최대한 많은 문자를 합치는 방법을 찾아야한다. 문자열을 자르는 범위는 문자열 길이의 절반 크기만큼만 확인하면 된다. e.g.) aabbccdd 문자열을 자른다 했을때 길이 4를 넘는 5, 6, 7, 8...의 길이로 자르는 것은 불가능하다. 잘린 문자열이 x이면서 같은 갯수가 199개라면 199x이므로 압축..
[프로그래머스 118667] 두 큐 합 같게 만들기 문제 Link https://school.programmers.co.kr/learn/courses/30/lessons/118667 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 Key Point 두 큐의 합이 2로 나누어 떨어지지 않으면(짝수가 아니면) 두 큐의 같은 합을 만들 수 없다. 각 큐의 총합을 비교하여 합이 큰 쪽의 head값을 pop해서 작은 쪽의 tail로 push 해준다. Java 풀이 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31..
Iterable와 Iterator에 대해 Iterable Iterable 인터페이스는 java.lang 패키지에 속하며 반복할 수 있는 데이터 구조를 나타낸다. Iterable 인터페이스는 Iterator를 생성하는 메서드를 제공한다. Iterable을 사용할 때 인덱스로 요소를 가져올 수 없으며 데이터 구조에서 첫 번째 또는 마지막 요소도 가져올 수 없다. Java의 모든 Collection은 Iterable 인터페이스를 구현한다. 향상된 for문을 사용하여 Collection 내부의 element들을 반복할 수 있다. 그러나 Iterable 인터페이스를 구현하는 객체만 이러한 명령문 내에서 사용할 수 있다. List list = getStrings(); list.forEach(System.out::println); Iterator Itera..
GET, POST, PUT GET 리소스 획득 GET 메서드는 리퀘스트 URI로 식별된 리소스를 가져올 수 있도록 요구한다 - GET 요청은 캐시 할 수 있다 - GET 요청은 브라우저 기록에 남는다 - GET 요청을 북마크에 추가할 수 있다 - 민감 데이터를 처리할 때 GET 요청을 사용해서는 안된다 - GET 요청에는 길이 제한이 있다 - GET 요청은 데이터 검색에만 사용해야 한다 POST POST 메서드는 엔티티를 전송하기 위해서 사용된다 GET으로도 엔티티를 전송할 수 있지만, 자주 사용하지 않고 일반적으로 POST를 사용한다 HTTP POST는 데이터가 URL에 표시되지 않으며 웹사이트에 데이터를 제출할 때 일반적으로 HTTP POST는 사용자 상호 작용의 결과로만 수행될 수 있다(e.g. Submit button) -..
@RequiredArgConstructor과 @AllArgConstructor의 차이점 @RequiredArgConstructor 필수 인수가 있는 생성자를 생성한다 필수 인수는 초기화되지 않은 final 및 @NonNull과 같은 제약 조건이 있는 필드이다 기본 액세스 수정자는 public이다 @RequiredArgConstructor는 다음 field들을 생성하지 않는다 1. final이 아닌 field 2. 초기화가 된 final field 3. static field 4. 초기화 된 non-null field @AllArgConstructor 모든 필드 값을 파라미터로 받는 생서자를 만든다