종류별로 해시를 이용하여 정보를 저장하는 것은 어렵지 않았다. 그런데, 조합의 갯수를 어떻게 구해야할지 어려웠다. 이론적으로 구할 수는 있었으나 코드로 구현하려면 너무 복잡해보였다. 다른 사람의 팁을 참고하여서 엄청난 풀이를 알아냈다..!!!😲 다음에 이런 종류의 문제에서 이런 사고방식을 떠올릴 수 있었으면 좋겠다. 스파이들은 매일 다른 옷을 조합하여 입어 자신을 위장합니다. 예를 들어 스파이가 가진 옷이 아래와 같고 오늘 스파이가 동그란 안경, 긴 코트, 파란색 티셔츠를 입었다면 다음날은 청바지를 추가로 입거나 동그란 안경 대신 검정 선글라스를 착용하거나 해야 합니다. 종류 이름 얼굴 동그란 안경, 검정 선글라스 상의 파란색 티셔츠 하의 청바지 겉옷 긴 코트 스파이가 가진 의상들이 담긴 2차원 배열 c..
인덱스 접근 오류가 몇번 나서 고치는 것 말고는 문제 이해도 쉽고 풀기에도 어렵지 않았던 문제다. 다른 사람의 풀이를 보던 중, 나와 너무 다르고 쉽게 접근한 것을 발견했다. 그리고 문제 자체가 해시에 분류되어 있는 만큼 해시를 이용해 푼 풀이도 있었다. 그래서 정리를 해보려고한다. 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조대 : 119 박준영 : 97 674 223 지영석 : 11 9552 4421 전화번호부에 적힌 전화번호를 담은 배열 phone_book 이 solution 함수의 매개변수로 주어질 때, 어떤 번호가 다른 번호의 접두어인 경우가 있으면 false..
어찌저찌 풀기는 한 문제이다. 그런데, 시간과 공간복잡도가 너무 크게 나온것 같다 ㅠㅠ 다른 사람의 풀이를 보던 중, 훨씬 성능이 좋은 방법을 알게되었고 이 과정에서 새로운 것들을 많이 알게 되어 정리하려고 한다. 문제 설명 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 조각으로 만들 수 있는 소수가 몇 개인지 return 하도록 solution 함수를 완성해주세요. 제한사항 numbers는 길이 1 이상 7 이하인 문자열입니다. numbers는 0~9까지 숫자만으로 이루어져 있습니다. 013은 0, 1, 3 숫자가 적힌 종이 조각이 흩어져있다는 의미입니..
어렵지 않게 풀은 문제이다. 비트 연산자를 사용하여 풀은 다른사람의 풀이를 보고 아차 싶었다. C/C++의 개념들을 처음 배울 때 연산자 파트에서 비트 연산자에 대해 꼭 배운다. 실질적으로 사용해본적이 없어서 떠올리지를 못했던 것 같다. 매우쉽게 떠올릴 수도 있는데도 불구하고 말이다. 나는 비트 연산을 풀어서 코드를 구현했기 때문에 내용자체는 똑같았지만 비트 연산자를 사용한 코드가 더 간단하며 가독성도 좋고 성능도 좋기 때문에 정리하고 넘어가기로 마음먹었다. 😄 - 비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다행히 지도 암호를 해독할 방법을 적어놓은 메모도 함께 발견했..
이번 문제는 접근 방식을 어떻게 해야할지 몰라 한참 고민을 하다가 다른 사람의 접근 방식을 참고하여 풀었다 ㅠㅠ 다음에 이런 비슷한 경우에 생각나서 풀 수 있도록 정리를 해봐야겠다. 가로 길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다. 종이에는 가로, 세로 방향과 평행하게 격자 형태로 선 이 그어져 있으며, 모든 격자칸은 1cm x 1cm 크기입니다. 이 종이를 격자 선을 따라 1cm × 1cm의 정사각형으로 잘라 사용할 예정이었는데, 누군가가 이 종이를 대각선 꼭지점 2개를 잇는 방향으로 잘라 놓았습니다. 그러므로 현재 직사각 형 종이는 크기가 같은 직각삼각형 2개로 나누어진 상태입니다. 새로운 종이를 구할 수 없는 상태이기 때문에, 이 종이에 서 원래 종이의 가로, 세로 방향과 평행하..
스택과 큐를 이용한 문제였다. 나는 큐를 이용해서 풀었는데, 그닥 어렵다는 느낌은 없었던 문제다. 다른 사람의 풀이를 봤는데 큐도 따로 선언하지 않고 반복문 한번으로 쉽게 끝내버리는 풀이가 있었다. 나와 로직은 비슷했다. 그치만 나는 큐에 넣고 빼면서 연산을 하여 answer에 넣었다면, 그 풀이는 처음부터 연산을 하여 answer에 넣었다. 꽤 흥미로웠기 때문에 리뷰를 해보려한다. 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 기능보다 먼저 개발될 수 있고, 이때 뒤에 있는 기능은 앞에 있는 기능이 배포될 때 함께 배포됩니다. 먼저 배포되어야 하는 순서대로 ..
스택/큐를 이용해서 풀어야했던 문제다. 나는 그중에서 큐를 이용해서 풀었고 , 배열을 통해 관리했다. 내용 자체는 어렵지 않게 풀었고 다른 사람의 풀이를 보다가 새로운 함수를 발견해서 적어보려 한다. 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린터를 개발했습니다. 이 새롭게 개발한 프린터는 아래와 같은 방식으로 인쇄 작업을 수행합니다. 1. 인쇄 대기목록의 가장 앞에 있는 문서(J)를 대기목록에서 꺼냅니다. 2. 나머지 인쇄 대기목록에서 J보다 중요도가 높은 문서가 한 개라도 존재하면 J를 대기목록의 가장 마지막에 넣습니다. 3. 그렇지 않으면 J를 인쇄합..
탐욕법 (Greedy) 알고리즘 을 사용해서 풀어야한다. 어렵지 않게 금방 풀었으나 다른 사람의 풀이를 보던 중, 깔끔하면서 목적에 충실한 풀이를 발견해서 리뷰를 해보려한다. 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번호의 학생이나 바로 뒷번호의 학생에게만 체육복을 빌려줄 수 있습니다. 예를 들어, 4번 학생은 3번 학생이나 5번 학생에게만 체육복을 빌려줄 수 있습니다. 체육복이 없으면 수업을 들을 수 없기 때문에 체육복을 적절히 빌려 최대한 많은 학생이 체육수업을 들어야 합니다. 전체 학생의 수 n, 체육복을 도난당한 학생들의 번호가 담긴 배열 lost, 여벌의 ..