본문 바로가기

알고리즘 문제풀이/프로그래머스

(6)
프로그래머스 Lv2. 스킬트리(파이썬) https://programmers.co.kr/learn/courses/30/lessons/49993풀이언뜻 봤을때 위상정렬로 풀어야하나 싶었지만, 그냥 skill의 우선순위를 표시해가며 풀어도 될 것 같아서 모든 알파벳의 우선순위를 0으로 초기화 하고, skill의 알파벳 순서대로 1씩 추가해준 값을 idx 배열에 저장해 주었다. 이를 이용해 비교하려는 문자열을 훑으면서 현재의 우선순위보다 높으면 잘못된 순서이므로 flag를 표시하고 끝낸다. 알파벳은 ABC...XYZ를 0번부터 25번의 인덱스로 사용하고 싶어서 ASCII 값을 이용해 바꿔주었다.(AToI함수) python3def AToI(A): return ord(A) % 65 def solution(skill, skill_trees): answer..
프로그래머스 Lv1. 크레인 인형뽑기 게임(파이썬) https://programmers.co.kr/learn/courses/30/lessons/64061풀이몇 번째 열인지 알려주고(moves 배열), 그 열의 가장 위에 있는 인형을 뽑아서 바구니에 옮긴다. 인형은 바구니에 아래서부터 차곡차곡 쌓이고 같은것이 2개 연속되면 터트린다. 바구니의 구현은 스택을 이용하면 되는데 파이썬은 그냥 리스트를 사용하면 된다. (c++은 벡터로 구현하면 된다.)인형을 뽑았을 때 바구니의 가장 위에 있는것과 비교해서 같은거면 없애고 정답 변수에 +2를 해준다. 다른거면 그냥 인형을 바구니에 올린다.(추가한다.)python3def solution(board, moves): answer = 0; st=[] for x in moves: x-=1 #0번 인덱스부터 사용할꺼야~ fo..
프로그래머스 Lv1. K번째수(python) 프로그래머스 Lv1. K번째수(파이썬)https://programmers.co.kr/learn/courses/30/lessons/42748문제 설명배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하려 합니다.예를 들어 array가 [1, 5, 2, 6, 3, 7, 4], i = 2, j = 5, k = 3이라면array의 2번째부터 5번째까지 자르면 [5, 2, 6, 3]입니다.1에서 나온 배열을 정렬하면 [2, 3, 5, 6]입니다.2에서 나온 배열의 3번째 숫자는 5입니다.배열 array, [i, j, k]를 원소로 가진 2차원 배열 commands가 매개변수로 주어질 때, commands의 모든 원소에 대해 앞서 설명한 연산을 적용했을 때 나온 결과를 배..
프로그래머스 Lv1. 모의고사(python) 프로그래머스 Lv1. 모의고사(파이썬)https://programmers.co.kr/learn/courses/30/lessons/42840문제 설명수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다.1번 수포자가 찍는 방식: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ... 2번 수포자가 찍는 방식: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ... 3번 수포자가 찍는 방식: 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, ...1번 문제부터 마지막 문제까지의 정답이 순서대로 들은 ..
프로그래머스 Lv1. [2020카카오공채] 문자열 압축(python) 프로그래머스 Lv1. [2020카카오공채] 문자열 압축(파이썬)https://programmers.co.kr/learn/courses/30/lessons/60057문제 설명데이터 처리 전문가가 되고 싶은 어피치는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문자열에서 같은 값이 연속해서 나타나는 것을 그 문자의 개수와 반복되는 값으로 표현하여 더 짧은 문자열로 줄여서 표현하는 알고리즘을 공부하고 있습니다. 간단한 예로 aabbaccc의 경우 2a2ba3c(문자가 반복되지 않아 한번만 나타난 경우 1은 생략함)와 같이 표현할 수 있는데, 이러한 방식은 반복되는 문자가 적은 경우 압축률이 낮다는 단점이 있습니다...
프로그래머스 Lv1. 완주하지 못한 선수(python) Lv1. 완주하지 못한 선수(파이썬)https://programmers.co.kr/learn/courses/30/lessons/42576문제 설명수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다.마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요.제한사항마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다.completion의 길이는 participant의 길이보다 1 작습니다.참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있습니다.참가자 ..