Algorithm 24

[프로그래머스] 다트 게임 (KAKAO BLIND RECRUITMENT) - Python

[1차] 2018 KAKAO BLIND RECRUITMENT - Lv1. 🌵 문제 https://school.programmers.co.kr/learn/courses/30/lessons/17682 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🚀 풀이 스택을 이용하면 계산하기에 편하겠다고 생각했는데, 숫자를 마주하면 스택에 넣어주고 아닌 경우 연산하여 연산된 결과를 넣어줬습니다. 이 과정에서 한 문자씩 읽게되는데 정수의 범위는 1~10이므로 10은 반복문 돌기 이전에 '@' 문자로 바꿔주었습니다. 숫자로 되어있는 문자를 판별하는 과정은 isNumChar ..

Algorithm 2023.02.22

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

문제 코딩테스트 연습 - 체육복 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번 programmers.co.kr 풀이 제한사항 중 '여벌 체육복을 가져온 학생이 체육복을 도난당했을 수 있습니다.' 에서 lost 배열과 reserve 배열을 정제해 줄 필요가 있다고 생각했습니다. 그래서 reserve 배열에 있는 학생 번호가 lost 배열에 있는 경우, 해당 학생 번호를 lost 배열과 reserve 배열에서 제외하는 방식으로 new_lost 와 new_reserve 를 재정의 해줬습니다. 체육복을 빌리는 과정은 그리디를 사용하여 풀이했는데, new_lost 와 new_..

Algorithm 2022.12.04

[BOJ] 폴리오미노 - Python

문제 1343번: 폴리오미노 첫째 줄에 사전순으로 가장 앞서는 답을 출력한다. 만약 덮을 수 없으면 -1을 출력한다. www.acmicpc.net 풀이 본 문제는 그리디를 사용해서 풀이했습니다. 폴리오미노 'AAAA'의 문자 개수가 폴리오미노 'BB'의 문자 개수의 배수이기 때문에 'AAAA' 선택 후 'BB' 선택이라는 현재 시점에서의 최선의 선택지가 있기 때문입니다. 연속된 'X' 와 '.' 에 대해 다른 태도를 취해야하므로 ('X' 는 교체, '.' 는 통과) 'X' 와 '.' 을 나눠서 새로운 배열에 저장해 주었는데, 문자열을 나눠서 새로운 배열 answer_lst 에 넣어주는 과정은 divide_board 함수를 이용했습니다. divide_board 함수 내용은 다음과 같습니다. 인덱스 슬라이싱..

Algorithm 2022.12.04

[프로그래머스] 구명보트 - Python

문제 코딩테스트 연습 - 구명보트 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 5 programmers.co.kr 풀이 해당 문제는 그리디를 이용해 해결했습니다. 오름차순으로 people 배열을 정렬해준 뒤, 왼쪽 커서와 오른쪽 커서를 지정해줍니다. 인덱스에 해당하는 사람이 구명보트를 타고 떠나면, 인덱스를 옮겨줍니다. 왼쪽 커서와 오른쪽 커서가 같아질 때까지 반복문을 도는데, people[left] + people[right] 값이 limit 값을 넘으면 오른쪽 인덱스에 해당하는 사람만 보트에 보내고 (right -= 1), people[l..

Algorithm 2022.12.04
728x90