이 문제는 문제 자체가 어렵다기보다는 손 코딩을 통해 어떻게 풀어나갈지 정하고 풀기 시작하지 않는다면, 문제를 풀면서 코드가 복잡해지는 문제 같았다. 나도 손 코딩부터 하지 않고 하여 코드가 뒤죽박죽이 됐었다. 이 문제는 설명이 매우 길지만 요약하자면 주어진 두개의 문자열을 각각 문자로만 이루어진 두 개의 단어로 쪼개어 다중집합으로 저장한 후, 자카드 유사도를 구하는 문제이다. 문제를 읽으면서 다중집합과 자카드유사도를 보며 처음 보는 개념에 당황했지만, 개념을 이해하기보다는 문제가 시키는 대로 풀려고 노력했다. 다중집합은 중복을 허용하는 집합이었고 그렇기 때문에 교집합과 합집합을 구하는 방식이 일반 집합과 달랐다. 나는 문제를 풀기위해 총 세 가지 부분으로 나누어 풀었다. Q1. 문자열을 두글자씩 모두 ..
전체 글
주니어 프론트엔드 개발자 허건녕입니다.이번 문제는 문제 카테고리가 깊이/너비 우선 탐색이기 때문에 문제를 풀 때 어느 정도 힌트를 얻을 수 있었다. 이 문제는 항공권 정보가 담긴 (출발지 , 목적지) 티켓들이 적혀있다. 이 티켓들로 모든 도시들을 방문하고자 할 때 경로를 반환해야 한다. 추가 제약사항으로는 모든 도시를 방문하는 경우의 수가 두 개 이상 있을 때, 알파벳순으로 가장 앞의 값을 리턴해야 한다는 점이 있다. 내가 이문제를 풀면서 생각한 두 가지 키포인트는 1. 주어진 항공권은 모두 사용해야 한다 + 이 문제는 시간 제약이 없다 2. 경로를 return 해야 한다. 이다 첫 번째로 주어진 항공권을 모두 사용해야 한다는 점에서 나는 시간단축을위해 해쉬자료형이나, 방문기록을 위해 인접행렬을 만들 필요없이 항공권의 인덱스와 갯수로 방문체..
프로그래머스의 불량 사용자 문제를 풀어보았다. 지난번에 풀다가 실패했던 링크 점수 이후로 정규화에 대해 공부해 보았기 때문에 이 문제를 봤을 때, 정규화로 풀어볼 수 있겠다는 생각이 들었다. 이 문제는 모든 아이디가 공개되어 있는 이벤트 응모자 아이디와 아이디가 일부분 '*'로 가려져 있는 불량사용자 아이디를 제공한다. 이 정보를 통해 이벤트 응모자 아이디 중 불량 아이디를 가려내고자 할 때, 불량 아이디로 가려내질 응모자 아이디의 경우의 수를 묻는다. 이렇게 두 정보가 제공됐을 때, 불량사용자로 인해 제재받는 경우의 수는 [frodo, abc123], [fradi, abc123] 이렇게 두 가지의 경우가 있다. 추가적으로 고려해야 할 제약사항은 불량사용자 아이디는 무조건 하나의 응모자 아이디를 가리키고..
프로그래머스 문제 중 매칭 점수 (42893)을 풀면서 내가 알고 있는 무기인 split매서드와 strip매서드로 최대한 활용해보았지만 TC 9번을 해결할 수가 없어서 포기하고 다른 사람들의 풀이를 찾아보았다. 파이썬을 이용해서 푼 사람들 대부분이 re라이브러리를 불러와서 정규화라는 것을 활용하는 것을 확인할 수 있었다. TC 9번과 11번의 어려운 예외를 정규화라는 것으로 뚝딱 해결하는 것을 보고, 이건 좀 공부해놓으면 좋겠는데?라는 생각이 들어 공부를 해보았다. 1. 정규표현식(Regular expression)이 무엇일까? 정규 표현식(REs, regexres, regex pattern)이란 파이썬 내부의 re모듈을 통해 사용할 수 있는, 전문화된 프로그래밍 언어이다. 정규표현식은 문자열 집합에 대..