프로그래머스 50

프로그래머스 - 주식가격

문제 https://school.programmers.co.kr/learn/courses/30/lessons/42584?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 인덱스의 차이를 통해 가격이 떨어지지 않는 기간을 구한다. 주식 가격이 떨어지는 인덱스를 기준으로 다른 인덱스와의 길이를 구할 수 있다. 가격이 떨어지는 인덱스보다 이전 인덱스의 가격이 높으면 이전 인덱스의 길이를 확정한다. 스택을 이용해 인덱스를 저장해 길이 비교를 쉽게 한다. 스택에 마지막까지 남아있는 인덱스는 가격이 떨어지지 않는 주식 가격이다. 이 ..

프로그래머스 - 짝지어 제거하기

문제 https://school.programmers.co.kr/learn/courses/30/lessons/12973 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 짝일 수 있는 문자 2개를 확인하기 위해 스택을 이용한다. 짝을 확인하는 방법은 스택의 top에 있는 문자와 이번에 스택에 넣을 문자를 비교하면 된다. 짝이 맞다면 스택에 새로운 문자를 넣지 않고 스택의 top에 있는 문자만 제거해주면 된다. 코드 python 1 2 3 4 5 6 7 8 9 def solution(s): stack = [] for c in s: if stack and ..

프로그래머스 2024.01.13

프로그래머스 - 괄호 회전하기

문제 https://school.programmers.co.kr/learn/courses/30/lessons/76502 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 문자열을 회전한 후 열린 괄호-닫힌 괄호 순서가 맞는 괄호 짝을 계속 빼면 된다. 만약 올바른 괄호 문자열이면 문자열의 길이는 0이 될 것이다. 스택을 이용해서도 비슷하게 해결 가능하다. 코드 python 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 def rotate(s): return s[1:] + s[:1] def is_ri..

프로그래머스 - n^2 배열 자르기

문제 https://school.programmers.co.kr/learn/courses/30/lessons/87390 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 2차원 배열의 값을 채우는 규칙을 찾으면 배열을 사용하지 않아도 된다. 2차원 배열을 만들어서 문제를 해결하는 경우 O(n^2) 시간복잡도로 문제를 풀 수 없다. 배열의 값을 채우는 규칙은 다음과 같다. 인덱스의 몫과 나머지로 n x n 배열의 행과 열을 알 수 있다. 그중 큰 값에 1을 더하면 배열의 값이다. 코드 python def solution(n, left, right): an..

프로그래머스 2024.01.10

프로그래머스 - 방문 길이

문제 https://school.programmers.co.kr/learn/courses/30/lessons/49994 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 구현 문제다 [현재 좌표, 이동할 좌표]로 배열을 만들어 걸어본 길을 저장한다. 걸어본 길은 양방향으로 확인한다. [현재 좌표, 이동할 좌표], [이동할 좌표, 현재 좌표]를 확인 한 후 걸어본 길을 저장한다. 좌표가 중복이 안되게 체크하고, 이동할 좌표도 좌표 평면의 길이를 넘지 않도록 주의한다. 코드 python def solution(dirs): traces = [] current..

프로그래머스 2024.01.06

프로그래머스 - 신규 아이디 추천

문제 링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 다음 정규 표현식을 이용해 “..” 을 찾을 수 있다. "[.]{2,}” 문제의 조건에 맞게 구현을 하면 된다. 코드 java public class Solution { public String solution(String new_id) { new_id = toLowerId(new_id); new_id = removeSpecialChar(new_id); new_id = removeContinueDot(new_id); new_id = removeEdgeDot(new_id); new_id = if..

프로그래머스 2022.12.06

프로그래머스 - 체육복

문제 링크 풀이 앞 사람 또는 뒤 사람에게 체육복을 빌린다. 빌려준 사람은 reserve 배열에서 삭제한다. 삭제를 편하게 하기 위해서 배열 대신 HashSet을 사용했다. 코드 java import java.util.Arrays; import java.util.HashSet; import java.util.Set; import java.util.stream.Collectors; public class Solution { public int solution(int n, int[] lost, int[] reserve) { int answer = n; Set reserveSet = new HashSet(); reserveSet.addAll(Arrays.stream(reserve).boxed().collect..

프로그래머스 2022.11.25

프로그래머스 - 없어진 기록 찾기

문제https://programmers.co.kr/learn/courses/30/lessons/59042 코딩테스트 연습 - 없어진 기록 찾기ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디programmers.co.kr  코드SELECT AO.ANIMAL_ID, AO.NAMEFROM ANIMAL_OUTS AOLEFT JOIN ANIMAL_INS AION AO.ANIMAL_ID = AI.ANIMAL_IDWHERE AI.ANIMAL_ID IS..

프로그래머스 - 있었는데요 없었습니다

문제https://programmers.co.kr/learn/courses/30/lessons/59043 코딩테스트 연습 - 있었는데요 없었습니다ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디programmers.co.kr  코드mysqlSELECT ANIMAL_INS.ANIMAL_ID, ANIMAL_INS.NAMEFROM ANIMAL_INSJOIN ANIMAL_OUTSON ANIMAL_INS.ANIMAL_ID = ANIMAL_OUTS...

프로그래머스 - 카카오 프렌즈 컬러링북

문제 https://programmers.co.kr/learn/courses/30/lessons/1829 코딩테스트 연습 - 카카오프렌즈 컬러링북 6 4 [[1, 1, 1, 0], [1, 2, 2, 0], [1, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 3], [0, 0, 0, 3]] [4, 5] programmers.co.kr 풀이 그래프 탐색(DFS)을 통해 영역을 찾는다. 코드 java public class Solution { boolean[][] visited; int[] dx = {1, -1, 0, 0}; int[] dy = {0, 0, 1, -1}; int size; public int[] solution(int m, int n, int[][] picture) { int ..

프로그래머스 2022.02.20