문제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..
문제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..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/284527 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr소요 시간 : 10분난이도 : LV 2나의 풀이접근 방법1. GROUP BY를 이용해 사원별 상반기, 하반기 점수 합을 구한다.2. 점수별로 내림차순 정렬 후 LIMIT 1로 제일 높은 사원을 뽑는다.3. 1~2에서 구한 테이블을 서브쿼리로 사원 정보 테이블과 조인해서 사원의 추가 정보를 구한다.코드-- 코드를 작성해주세요SELECT G.SCORE, G.EMP_NO, E.EMP_NAME, E.POSITION, E.EMAILFROM (SEL..
문제https://softeer.ai/practice/7727 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai소요 시간 : 1시간난이도 : LV 3나의 풀이 접근 방법DFS + 백트래킹을 이용한다.1. 친구들 순서대로 반복1-1. 3초동안 이동하며 열매를 수확한다. 이때 DFS를 돌려서 갈 수 있는 모든 경우의 수를 탐색한다. 1-2. 3초가 되었으면 다음 친구의 수확을 반복한다. 2. 모든 친구들이 수확을 완료했다면 답을 갱신한다. 시간복잡도m명의 친구가 있고 (m) -> 각 친구마다 3초동안 이동해야 하고 -> 각 위치에서 4방향 선택 가능 (상하좌우)따라서 각 친구마다 4³회의 탐색 가능하다. (최악의 경우)전체 시간복잡도: O(m * 4³) (m은 친구 수, 1 ≤ m ≤ 3..