반응형

Algorithm 247

[백준 알고리즘] 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

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

https://school.programmers.co.kr/learn/courses/30/lessons/42586 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 소스코드 풀이 ★ 매개변수로 받은 리스트를 왼쪽에서부터 차례대로 출력해줘야 하기 때문에 FIFO 구조를 띄는 '큐'를 사용하여 문제를 풀었습니다. ★ times라는 변수를 선언해 작업진도 + (times*작업속도)를 계산해줬습니다. 만약 이 값이 100이거나 100보다 크다면 작업이 완료된 것이기에 큐에서 pop해줍니다. 또한 저희는 갯수를 출력해야하기 때문에 cnt 변수도 +1 해줍니다. ★ 예..

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

https://school.programmers.co.kr/learn/courses/30/lessons/42584 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 소스코드 풀이 ★ 큐를 사용하여 popleft()를 통해 큐 안에서 가장 앞에 위치한 요소를 pop한 뒤 남아있는 원소들과의 크기비교를 통해 몇초간 가격이 유지되는지를 출력하면 되는 문제입니다 ★ for문을 돌면서 초를 구하는 변수인 sec에 +1을 먼저 해주는 부분은 문제에서 주어진 것처럼 배열이 [1, 2, 3, 2, 3]이고 첫번째 3에서 2로 가는 경우에 1초 뒤에 가격이 떨어지는 것으로 ..

[프로그래머스] H-index (Python)

https://school.programmers.co.kr/learn/courses/30/lessons/42747 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 소스코드 풀이 ★ h번 이상 인용된 논문이 h편 이상 있는데, 이 h의 최댓값을 출력하는 문제입니다. ★ 먼저 배열을 내림차순으로 정렬해줍니다. 그 후 배열을 읽으면서 배열의 원소 인덱스 번호가 해당 값보다 크거나 같을 때를 찾아줘야 합니다. ex) 배열 = [10, 9, 7, 5, 3, 1] 인덱스 번호 = [0, 1, 2, 3, 4, 5]. 인덱스 번호가 배열의 값보다 크거나 같아질 때 - >..

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

https://school.programmers.co.kr/learn/courses/30/lessons/42746 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 소스코드 풀이 ★ 입력 받은 리스트의 원소들을 문자열 형태로 바꿔주는 sort 과정에서 문자열의 대소비교를 사용하기 때문입니다. 문자열의 대소비교는 문자의 첫번째 인덱스부터 아스키코드로 변환해 대소비교를 하게 됩니다. 즉 "6" > "10"이 성립됩니다. ★ 정렬하는 과정에서 lambda 함수를 사용하는데 x*3을 해주는 이유는 numbers의 원소가 1이상 1000이하이기 때문에 최대 3자릿수까..

[프로그래머스] 프로세스 (Python)

https://school.programmers.co.kr/learn/courses/30/lessons/42587 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 소스코드 풀이 ★ FIFO 구조인 큐를 이용하여 푸는 문제입니다 ! 입력 받은 priorities 리스트를 (인덱스, 값) 형태로 큐 자료구조를 만들어 줍니다. 이 때 enumerate()를 사용해주시면 됩니다 ! ★ dq가 비어있지 않는 동안 반복문을 도는데, 먼저 큐에서 하나의 값을 pop해줍니다. 그 값을 기준으로 조건문들을 작성하는데, 이때 any 함수가 사용됩니다. - any(): 조건 ..

[프로그래머스] 체육복 (Python)

https://school.programmers.co.kr/learn/courses/30/lessons/42862#qna 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 소스코드 풀이 ★ 먼저 매개변수로 받은 lost와 reserve를 새로 만들어줘야 합니다. 만약 lost = [1,3,5], reserve = [2,3,7]일 경우 3은 문제 설명의 마지막 조건에 걸리기 때문에 체육복을 빌려줄 수 없습니다. 여벌 체육복을 가져온 학생이 체육복을 도난당했을 수 있습니다. 이때 이 학생은 체육복을 하나만 도난당했다고 가정하며, 남은 체육복이 하나이기에 다른 학..

[프로그래머스] K번째 수 (Python)

https://school.programmers.co.kr/learn/courses/30/lessons/42748 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 소스코드 풀이 ★ 2차원 배열로 이루어진 commands를 하나씩 돌면서 그 안에 있는 i, k를 가지고 새로운 배열 cur을 만들어 줍니다. ★ cur을 오름차순으로 정렬했을 때 j번째에 있는 수를 answer에 append 해주는데, 이 과정을 commands에 들어있는 원소 수만큼 해줘야 합니다.

반응형