알고리즘/프로그래머스 47

[프로그래머스] 짝지어 제거하기 C++

https://programmers.co.kr/learn/courses/30/lessons/12973 코딩테스트 연습 - 짝지어 제거하기 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙 programmers.co.kr 이번 문제는 stack 문제였습니다. 📝 문제풀이 1. 스택이 비어있다면 문자 push 2. 스택이 비어 있지 않다면 (짝지어가 있는지 검사) ☻ 스택의 탑과 현재 문자가 같다면 pop ☻ 스택의 탑과 현재 문자가 같지 않다면 현재 문자 push 3. 스택이 비어 있다면 짝지어를 성공적으로 제거한 것이므로 answer = 1 👩🏻‍💻 C++ 코드 #..

[프로그래머스] 문자열 압축

https://programmers.co.kr/learn/courses/30/lessons/60057?language=cpp 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문 programmers.co.kr 이번 문제는 완전 탐색 문제였습니다. 《문제 풀이》 1. 문자열 s를 압축할 수 있는 최대 길이는 s 길이의 절반임 ★ 2. string의 substr() 함수를 이용하여 문자열 비교 3. 비교하는 문자열과 현재 문자열이 ☛ 같다면 cnt++ ☛ 같지 않다면 temp 문자열에 cnt와 비교하는 문자열을 더해줌 (cnt는 cnt > ..

[프로그래머스] 기능개발

https://programmers.co.kr/learn/courses/30/lessons/42586?language=cpp 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr 이번 문제는 스택/큐 문제였습니다. 《문제 풀이》 1. progresses 배열의 각 기능이 배포되기 위한 작업 기간을 구함 2. 구한 작업 기간들을 큐에 담음 3. 다음 작업 기간이 앞 차례의 작업 기간보다 ✏︎ 짧거나 같다면 theNumber++ ✏︎ 길다면 answer 배열에 theNumber를 담아줌 《C++ 코드》 #inc..

[프로그래머스] 가장 큰 수

https://programmers.co.kr/learn/courses/30/lessons/42746 코딩테스트 연습 - 가장 큰 수 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 programmers.co.kr 이번 문제는 정렬 문제였습니다. 《문제 풀이》 1. numbers 배열의 숫자를 문자열로 변환 2. 문자열로 변환한 두 숫자를 합치면서 오름차순 정렬 ← (b+a) - (a+b) 3. 결과값을 문자열로 변환 ★ numbers 배열이 0으로만 이루어진 경우 '000'과 같은 결과가 나올 수 있기 때문..

[프로그래머스] 타겟 넘버 JavaScript (Lv.2)

https://programmers.co.kr/learn/courses/30/lessons/43165?language=javascript 코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수들이 있습니다. 이 정수들을 순서를 바꾸지 않고 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 programmers.co.kr 이번 문제는 DFS 문제였습니다. 📝 문제 풀이 1. numbers 배열의 모든 음이 아닌 정수는 더하거나 뺄 수 있음 ← 재귀 함수 2번 나눠서 호출 2. numbers 배열의 정수들의 순서를 바꾸면 안 됨 (인덱스는 1씩 증가) 3. 인덱스가 numbers 배열의 길이와 같다면 ••• (1) sum ..

[프로그래머스] 등굣길

문제 보러가기 : https://programmers.co.kr/learn/courses/30/lessons/42898 코딩테스트 연습 - 등굣길 계속되는 폭우로 일부 지역이 물에 잠겼습니다. 물에 잠기지 않은 지역을 통해 학교를 가려고 합니다. 집에서 학교까지 가는 길은 m x n 크기의 격자모양으로 나타낼 수 있습니다. 아래 그림은 m = programmers.co.kr 이번 문제는 동적 프로그래밍 문제였습니다. 《문제 풀이》 1. 길의 정보를 나타내는 배열 road[101][101] 선언 2. 물이 잠긴 지역은 -1로 두어 경로의 개수를 세지 못하도록 방지 3. 누적 합을 위해 집의 위쪽 좌표 또는 왼쪽 좌표를 1로 두기 (본인은 왼쪽 좌표를 1로 두었음) 4. 해당 좌표가 -1 인 경우에는 0으로..

[프로그래머스] 주식 가격

programmers.co.kr/learn/courses/30/lessons/42584?language=c 코딩테스트 연습 - 주식가격 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 제한사항 prices의 각 가격은 1 이상 10,00 programmers.co.kr 이번 문제는 스택(stack) 문제였습니다. 📝 문제 풀이 1. 주식 가격이 떨어졌는지 확인하기 위한 스택 s를 선언 2. 주식 가격이 떨어졌다면, 현재까지의 시간 - 주식가격이 기록된 시간을 해당 시점에 저장 ⭐️ 3. while 문이 종료될 때마다 초(인덱스)를 s에 삽입 4. 마지막 시점까지 가격이 떨어지지 않..

반응형