반응형

전체 글 368

[백준 알고리즘] 2812번: 크게 만들기 (Python)

https://www.acmicpc.net/problem/2812 2812번: 크게 만들기 N자리 숫자가 주어졌을 때, 여기서 숫자 K개를 지워서 얻을 수 있는 가장 큰 수를 구하는 프로그램을 작성하시오. www.acmicpc.net 소스코드 풀이 ★ k개를 제거하여 가장 큰 수를 만들어야 하기 때문에 수들을 stack에 넣어가며 대소비교를 해줘야 합니다. stack 안에 들어있는 값보다 비교하려는 값이 더 작다면 그 수는 stack에 들어올 수 없습니다. ★ for문을 돌면서 stack이 비어있지 않고, 제거해야 하는 갯수인 k가 0보다 크다면 stack의 최상단 값과 반복문을 도는 값의 크기 비교를 해줍니다. 만약 stack안에 있는 값이 작다면 pop으로 제거해주고, k또한 -1 해줍니다. 크다면 ..

Algorithm/백준 2023.06.03

[백준 알고리즘] 3986번: 좋은 단어 (Python)

https://www.acmicpc.net/problem/3986 3986번: 좋은 단어 이번 계절학기에 심리학 개론을 수강 중인 평석이는 오늘 자정까지 보고서를 제출해야 한다. 보고서 작성이 너무 지루했던 평석이는 노트북에 엎드려서 꾸벅꾸벅 졸다가 제출 마감 1시간 전에 www.acmicpc.net 소스코드 풀이 ★ 입력받은 문자열의 문자들을 stack에 추가하면서 stack의 뒤에서 두번째 글자부터 끝까지의 글자가 ['A','A'] or ['B','B']일 경우 그 문자열은 좋은 단어이기 때문에 삭제해주는 과정을 진행합니다. ex) ABBA stack = ['A'] stack = ['A','B'] stack = ['A','B','B'] => 'B','B' pop 되고, cnt += 1 stack =[..

Algorithm/백준 2023.06.03

[백준 알고리즘] 17608번: 막대기 (Python)

https://www.acmicpc.net/problem/17608 17608번: 막대기 아래 그림처럼 높이만 다르고 (같은 높이의 막대기가 있을 수 있음) 모양이 같은 막대기를 일렬로 세운 후, 왼쪽부터 차례로 번호를 붙인다. 각 막대기의 높이는 그림에서 보인 것처럼 순서대로 www.acmicpc.net 소스코드 풀이 ★ n만큼 반복문을 돌면서 stack이 비어있지 않고, 스택의 최상단에 있는 값이 반복문 해당 값보다 작거나 같으면, 스택에서 pop해준 뒤, 해당 값을 append 해줍니다. ex) k = [6,9,7,6,4,6] i = 0, stack = [0] i = 1, stack = [1] i = 2, stack = [1,2] i = 3, stack = [1,2,3] i = 4, stack = ..

Algorithm/백준 2023.06.03

[프로그래머스] 오프라인/온라인 판매 데이터 통합하기 (Mysql)

https://school.programmers.co.kr/learn/courses/30/lessons/131537 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 소스코드 풀이 ★ UNION이라는 키워드를 통해 여러 개의 SELECT문의 결과를 단일 결과 세트 표현할 수 있습니다. 밑에 첨부된 사이트에서 JOIN과 UNION에 대해서, 그 차이점에 대해서 공부하실 수 있습니다 ! ★ 먼저 UNION은 합치려고 하는 두 테이블의 SELECT문의 칼럼 수가 일치해야 합니다. OFFLINE_SALE 테이블은 USER_ID라는 칼럼이 존재하지 않기 때문에 'NU..

[백준 알고리즘] 5397번: 키로거 (Python)

https://www.acmicpc.net/problem/5397 5397번: 키로거 첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한줄로 이루어져 있고, 강산이가 입력한 순서대로 길이가 L인 문자열이 주어진다. (1 ≤ L ≤ 1,000,000) 강산이가 백스페이스를 입 www.acmicpc.net 소스코드 풀이 ★ 문제에서 커서에 대한 위치가 나올 때 2개의 스택을 활용하여 푸는 문제라고 생각했습니다. 이와 비슷한 문제들이 종종 있는 거 같아용 ★ 입력받은 문자열을 돌면서 x가 괄호를 만나는지, 백스페이스를 만나는지 아니면 문자인지에 따라 수행이 달라지게 됩니다. X == ''을 만날 때는 커서가 오른쪽으로 이동해야 하기 때문에 s2에 있는 마지막 원소를 s1에 추가해줍니다. 만약 ..

Algorithm/백준 2023.06.03

[백준 알고리즘] 9935번: 문자열 폭발 (Python)

https://www.acmicpc.net/problem/9935 9935번: 문자열 폭발 첫째 줄에 문자열이 주어진다. 문자열의 길이는 1보다 크거나 같고, 1,000,000보다 작거나 같다. 둘째 줄에 폭발 문자열이 주어진다. 길이는 1보다 크거나 같고, 36보다 작거나 같다. 두 문자열은 모 www.acmicpc.net 소스코드 풀이 ★ 폭발 '문자열'이기 때문에 주어진 문자열의 문자가 떨어져 있는 경우에는 폭발하지 않는다고 생각해야 합니다. ex) a = [C, a, b, d, 4], b = C4 인 경우 답은 Cabd4. ★ 반복문을 돌면서 문자들을 stack에 집어넣습니다. 넣으면서 stack의 최상단 부분부터 폭발 문자열의 길이까지가 폭발 문자열과 같다면 그 문자들을 제거해주면 됩니다.

Algorithm/백준 2023.06.02

[백준 알고리즘] 2493번: 탑 (Python)

https://www.acmicpc.net/problem/2493 2493번: 탑 첫째 줄에 탑의 수를 나타내는 정수 N이 주어진다. N은 1 이상 500,000 이하이다. 둘째 줄에는 N개의 탑들의 높이가 직선상에 놓인 순서대로 하나의 빈칸을 사이에 두고 주어진다. 탑들의 높이는 1 www.acmicpc.net 소스코드 풀이 ★ 이전에 풀이했던 오큰수 문제와 비슷한 유형의 문제입니다. 레이저를 수신하는 탑이 없다면, 0이 출력되어야 하기 때문에 ans를 0으로 초기화합니다. ★ stack 안에 들어있는 수를 인덱스로 가지는 값이 반복문의 값보다 작으면 stack 안의 값은 답이 될 수 없기 때문에 pop 처리해줍니다. 만약 큰 수일 경우, stack안의 인덱스를 답으로 가질 수 있기 때문에 ans[i]..

Algorithm/백준 2023.06.02

[백준 알고리즘] 17298번: 오큰수 (Python)

https://www.acmicpc.net/problem/17298 17298번: 오큰수 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에 수열 A의 원소 A1, A2, ..., AN (1 ≤ Ai ≤ 1,000,000)이 주어진다. www.acmicpc.net 소스코드 풀이 ★ 오큰수는 해당 수보다 큰 수 중 가장 처음으로 나오는 수입니다. 이번 문제는 일반적인 스택문제는 입력받는 리스트의 요소들을 스택에 넣고, 빼면서 풀이를 진행하지만 오큰수 문제는 입력 값의 '인덱스'를 사용하여 풀어야 하는 문제였습니다 ! ★ 정답을 출력하기 위한 배열 ans는 -1로 초기화합니다. 그 이유는 해당 수의 오큰수가 없을 경우 -1이 출력되어야 하기 때문입니다. ★ 인덱스를 사용..

Algorithm/백준 2023.06.02

[프로그래머스] 우유와 요거트가 담긴 장바구니 (Mysql)

https://school.programmers.co.kr/learn/courses/30/lessons/62284 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 소스코드 풀이 ★ WHERE절에서 서브쿼리를 사용하여 NAME이 MILK도 가지고 있으면서 YOGURT도 가지고 있는 CART_ID만 추출해줍니다 !

[프로그래머스] 서울에 위치한 식당 목록 출력하기 (Mysql)

https://school.programmers.co.kr/learn/courses/30/lessons/131118 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 소스코드 풀이 ★ GROUP BY절에서 REST_ID를 기준으로 그룹핑을 진행한 뒤, HAVING에서 주소가 '서울'인 데이터들만 추출합니다. ★ 그 후 SELECT문에서 평균 평점을 구해주는데, ROUND 함수를 통해 반올림을 진행하여주고, 두번째 인자로 2를 입력하여, 소수점 3번째 자리에서 반올림을 해줬습니다 !

반응형