문제https://school.programmers.co.kr/learn/courses/30/lessons/293260 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr소요 시간 : 10분난이도 : LV 2나의 풀이 접근 방법 시간복잡도 코드 결과 : 시간초과 다른 사람의 풀이접근 방법 시간복잡도 코드 결과 : 정답 정리
티스토리챌린지
문제https://school.programmers.co.kr/learn/courses/30/lessons/76501 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 소요 시간 : 5분난이도 : LV 1나의 풀이접근 방법배열을 돌면서 signs가 true면 그냥 더해주고, false면 -를 붙여 더한다.시간복잡도O(N)N = absolutes의 배열 길이 = signs의 배열 길이코드class Solution { public int solution(int[] absolutes, boolean[] signs) { int answer = 0; for(int i=0..
문제https://school.programmers.co.kr/learn/courses/30/lessons/12943 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 소요 시간 : 5분난이도 : LV 1나의 풀이 접근 방법반복문을 이용한다.주의할 점 : int 범위를 초과하는 경우가 있어 long으로 타입 변환이 필요하다.1. 1이면 return2. 횟수 카운트 증가3. 짝수일 경우, 홀수일 경우 조건문으로 나눠서 처리4. 횟수가 500일 경우 -1 리턴 아니면 그냥 횟수 리턴시간복잡도O(N)N = 1로 변경하는 동안 반복하는 횟수 = 최대 500코드class Solution { public int..
문제https://school.programmers.co.kr/learn/courses/30/lessons/12948 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr소요 시간 : 10분난이도 : LV 1나의 풀이접근 방법인덱스를 기반으로 뒤에서 4번째 전이라면 *, 아니라면 문자 그대로를 추가한다.시간복잡도O(N)N = 문자열 길이코드import java.util.*;import java.lang.StringBuilder;class Solution { public String solution(String phone_number) { StringBuilder sb = new StringB..
문제https://school.programmers.co.kr/learn/courses/30/lessons/42747 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr소요 시간 : 1난이도 : LV 2나의 풀이 접근 방법1. 정렬한다.2. 뒤에서부터 찾으면서 인용 수가 카운트보다 적거나 같은 지점을 찾는다. // 0, 1, 3, 5, 6 6번 이상 6 > 1개 5번 이상 5 > 2개 3편 이상 3 = 3개시간복잡도O(N)N = citations의 길이코드import java.util.*;class Solution { public int solution(int[] citations) { i..
문제https://school.programmers.co.kr/learn/courses/30/lessons/299310 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 소요 시간 : 15분난이도 : LV 2나의 풀이 접근 방법1. GROUP BY를 이용해 연도별로 최대 대장균의 크기를 구한 테이블을 만든다.2. 원래 테이블에서 날짜는 연도로 변환하고, ID, 대장균 개수 컬럼 필요한 컬럼 3개만 추출한 테이블을 만든다. 3. 1과 2를 조인하여 뺄셈을 진행한다. 4. ORDER_BY를 이용해 정렬한다.코드-- 코드를 작성해주세요SELECT E.YEAR, M.MAX_COLONY-E.SIZE_OF_COLON..
보통 서버가 클라이언트 인증을 확인하는 방식은 대표적으로 쿠키, 세션, 토큰 3가지 방식이 있다. 쿠키(Cookie)Key-Value 형식의 문자열 덩어리클라이언트가 어떠한 웹사이트를 방문할 경우, 그 사이트가 사용하고 있는 서버를 통해 클라이언트의 브라우저에 설치되는 작은 기록 정보 파일이다. 각 사용자마다의 브라우저에 정보를 저장하니 고유 정보 식별이 가능하다.인증 방식 1) 브라우저(클라이언트)가 서버에 요청(접속)을 보낸다.2) 서버는 클라이언트의 요청에 대한 응답을 작성할 때, 클라이언트 측에 저장하고 싶은 정보를 응답 헤더의 Set-Cookie에 담는다.3) 이후 해당 클라이언트는 요청을 보낼 때마다, 매번 저장된 쿠키를 요청 헤더의 Cookie에 담아 보낸다.4) 서버는 쿠키에 담긴 정보를 ..
SSE(Server Sent Event)서버에서 클라이언트에게 실시간으로 데이터를 전송하는 기술 (단방향)HTTP connection을 길게 유지하면서, 서버에서 클라이언트에게 데이터를 전송서버에서 데이터 변경이 있을때 클라이언트에게 실시간으로 알려주기 위해 주로 사용된다.SSE 기술이 등장하기 전에는 Client에서 서버의 데이터 변경을 확인하기 위해 주로 polling 방식을 사용했다.polling 방식의 종류Short Polling클라이언트에서 주기적으로 API를 호출해 서버의 데이터 변경사항을 확인하는 기법이다.전통적인 AJAX 애플리케이션에서 사용되던 방식일정 간격마다 요청이 이뤄지며, 클라이언트는 새로운 데이터가 있든 없든 응답을 받고 일정 시간 기다렸다가 다음 요청을 날리고 응답받고, 또 기..
문제https://school.programmers.co.kr/learn/courses/30/lessons/12919?language=java 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 소요 시간 : 5분난이도 : LV 1 나의 풀이 접근 방법인덱스를 찾는 문제.List의 indexOf를 사용하기 위해 asList로 변환하였다. 코드import java.util.*;class Solution { public String solution(String[] seoul) { int idx = Arrays.asList(seoul).indexOf("Kim"); S..
문제https://school.programmers.co.kr/learn/courses/30/lessons/273710소요 시간 : 5분난이도 : LV 2 나의 풀이접근 방법1. ROOT 아이템은 PARENT_ITEM_ID가 NULL인 항목이므로 IS NULL을 활용해 ROOT_ITEM을 선택한다.2. ITEM_NAME을 알기 위해 ITEM_INFO 테이블과 조인한다. 코드 결과 : 정답SELECT T.ITEM_ID, ITEM_NAME FROM ITEM_TREE T JOIN ITEM_INFO I ON T.ITEM_ID = I.ITEM_ID WHERE PARENT_ITEM_ID IS NULL다른 사람의 풀이 코드SELECT ITEM_ID, ITEM_NAMEFROM ITEM_INFO JOIN ITEM_TRE..