본문 바로가기

Algorithm

(77)
[프로그래머스] 코딩테스트 연습 - 멀쩡한 사각형 코딩 테스트 연습 - 멀쩡한 사각형 [Summer/Winter Coding(2019)] 문제 설명 가로길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다. 종이에는 가로, 세로 방향과 평행하게 격자 형태로 선이 그어져 있으며, 모든 격자 칸은 1cm x 1cm 크기입니다. 이 종이를 격자 선을 따라 1cm × 1cm의 정사각형으로 잘라 사용할 예정이었는데, 누군가가 이 종이를 대각선 꼭짓점 2개를 잇는 방향으로 잘라 놓았습니다. 그러므로 현재 직사각형 종이는 크기가 같은 직각삼각형 2개로 나누어진 상태입니다. 새로운 종이를 구할 수 없는 상태이기 때문에, 이 종이에서 원래 종이의 가로, 세로 방향과 평행하게 1cm × 1cm로 잘라 사용할 수 있는 만큼만 사용하기로 하였습니다. 가로의 길이 W..
[프로그래머스] 코딩테스트 연습 - 괄호 변환 코딩 테스트 연습 - 괄호 변환 [2020 KAKAO BLIND RECRUITMENT] 문제 설명 카카오에 신입 개발자로 입사한 "콘"은 선배 개발자로부터 개발 역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를 컴파일하여 로그를 보니 대부분 소스 코드 내 작성된 괄호가 개수는 맞지만 짝이 맞지 않은 형태로 작성되어 오류가 나는 것을 알게 되었습니다. 수정해야 할 소스 파일이 너무 많아서 고민하던 "콘"은 소스 코드에 작성된 모든 괄호를 뽑아서 올바른 순서대로 배치된 괄호 문자열을 알려주는 프로그램을 다음과 같이 개발하려고 합니다. 용어의 정의 '('와')' 로만 이루어진 문자열이 있을 경우, '('의 개수와 ')'의 개수가 같다면 이..
[프로그래머스] 코딩테스트 연습 - 메뉴 리뉴얼 코딩 테스트 연습 - 메뉴 리뉴얼 [2021 KAKAO BLIND RECRUITMENT] 문제 설명 레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 새로운 메뉴를 제공하기로 결정했습니다. 어떤 단품 메뉴들을 조합해서 코스요리 메뉴로 구성하면 좋을 지 고민하던 "스카피"는 이전에 각 손님들이 주문할 때 가장 많이 함께 주문한 단품메뉴들을 코스요리 메뉴로 구성하기로 했습니다. 단, 코스요리 메뉴는 최소 2가지 이상의 단품 메뉴로 구성하려고 합니다. 또한, 최소 2명 이상의 손님으로부터 주문된 단품메뉴 조합에 대해서만 코스요리 메뉴 후보에 포함하기로 했습니다. 예를 들어, 손님 ..
[프로그래머스] 코딩테스트 연습 - 튜플 코딩 테스트 연습 - 튜플 [2019 카카오 개발자 겨울 인턴십] 문제 설명 제한사항 입출력 예 풀이 문제 목표는 입력으로 주어지는 하나의 문자열 s를 문자열이 아닌 집합 표현으로 보고 해당 집합이 나올 수 있도록 튜플을 생성하는 것입니다. 튜플을 통해서 생성되는 문자열 s는 튜플의 처음부터 원소를 하나씩 포함하여 생성된 것을 문자열로 표현한 것으로 문자열 s를 문자열이 아닌 set 또는 list의 형식으로 바꿀 수 있으면 문제는 쉬워집니다. 나머지는 원소의 개수에 맞춰 튜플을 만들어주기만 하면 되니까요?ㅎㅎ Code def solution(s): answer, mydict = [], [] temp = s[2:-2].split('},{') if len(temp) == 1: return [int(temp[..
[프로그래머스] DFS/BFS - 여행경로, Python 다음은 프로그래머스의 DFS/BFS 문제 중 여행경로 문제입니다. 입출력 예시는 다음과 같습니다. 두번째 예시는 알파벳 순서의 조건으로 해당 결과가 반환된 것입니다. 저는 다음과 같이 생각의 흐름을 잡았던 것 같습니다. 1. 배열을 그대로 사용하기보다는 dictionary의 형태로 그래프를 만들어서 사용하자! - 저는 초반에 defaultdict(set)으로 구현했다가 list로 바꿔주었는데 set으로 사용하시면 똑같은 티켓이 있는 경우에 하나의 티켓처럼 사용되어서 set으로 구현했습니다. 2. 알파벳 순서가 중요하다면 ticket들을 알파벳순으로 정렬해서 dictionary를 만들면 되지 않을까? - dictionary는 넣는 순서대로 들어간다. 여러 경우를 찾는 게 싫어서 정렬해서 넣었는데 이 생각하..