프로그래머스에서 vim으로 코딩을 하다보면 tab과 space 4칸 공백이 섞여있습니다. 아마 한쪽으로 바꿔주는 기능을 적용하지 않아서 그런 것 같아요. 공백과 탭이 섞여있으면 파이썬을 쓸 때 실행 자체가 안되고, 블로그에 코드를 붙여넣을 때 보면 들쭉날쭉한게 이쁘지 않습니다. 항상 스페이스 n칸이나 탭으로 고정시키는 방법은 아직 찾지 못했지만, 이미 작성된 공백 혹은 탭을 바꿔줄 방법은 있습니다. vim의 string replace 기능을 이용하면 됩니다. // space를 tab으로 :%s/ /\t/g // tab을 space로 :%s/\t/ /g 끗
문제 링크 programmers.co.kr/learn/courses/30/lessons/72416 코딩테스트 연습 - 매출 하락 최소화 CEO를 포함하여 모든 직원은 팀장 또는 팀원이라는 직위를 가지고 있으며 그림에서는 팀장과 팀원의 관계를 화살표로 표시하고 있습니다. 화살표가 시작되는 쪽의 직원은 팀장, 화살표를 받는 programmers.co.kr 풀이 혼자서 푼 건 아니고 친구(dutchcoffee.tistory.com/)가 핵심 아이디어를 알려주었습니다. 😥 각 정점 $n$이 팀장으로 있는 팀을 팀 $n$이라고 합시다. 팀 n에서 적어도 한 명이 참석한다는 조건을 만족시킬 때, 팀장이 참석하는 경우와, 팀장이 참석하지 않는 경우의 최솟값을 구해주면 됩니다. 이 값을 $d[n][0], d[n][1]..
문제 링크 programmers.co.kr/learn/courses/30/lessons/72415 코딩테스트 연습 - 카드 짝 맞추기 [[1,0,0,3],[2,0,0,0],[0,0,0,2],[3,0,1,0]] 1 0 14 [[3,0,0,2],[0,0,1,0],[0,1,0,0],[2,0,0,3]] 0 1 16 programmers.co.kr 풀이 완전 탐색 문제입니다. 1) 게임판의 특정 칸에서 다른 임의의 칸으로 이동할 때 드는 최소 동작 횟수를 구해주는 함수를 만들어줍시다. bfs로 한 칸짜리 4방향(↑, ↓, →, ←), 가장 가까운 카드 혹은 벽(Ctrl + ↑, ↓, →, ←)을 queue에 넣어주면서 돌리면 쉽게 구할 수 있습니다. line(17 ~ 56) 2) 어떤 순서로 카드를 없애나갈지 선..
문제 링크 programmers.co.kr/learn/courses/30/lessons/72414 코딩테스트 연습 - 광고 삽입 시간을 나타내는 HH, H1, H2의 범위는 00~99, 분을 나타내는 MM, M1, M2의 범위는 00~59, 초를 나타내는 SS, S1, S2의 범위는 00~59까지 사용됩니다. 잘못된 시각은 입력으로 주어지지 않습니다. (예: 04:60:24, 11 programmers.co.kr 풀이 개인적으로 엄청 헤맸던 문제입니다. 시간 0 ~ 360,000에 대해 시뮬레이션을 돌리면 쉽게 풀리는데, 그 생각을 못하고 재생 시작, 재생 끝나는 구간별로 처리하려다 보니 코드가 꼬여 시뮬레이션 방식으로 다시 풀게 되었습니다. 1) 모든 시간을 초 단위로 통일하는 게 편합니다. 2) 모든..
문제 링크 programmers.co.kr/learn/courses/30/lessons/72413 코딩테스트 연습 - 합승 택시 요금 6 4 6 2 [[4, 1, 10], [3, 5, 24], [5, 6, 2], [3, 1, 41], [5, 1, 24], [4, 6, 50], [2, 4, 66], [2, 3, 22], [1, 6, 25]] 82 7 3 4 1 [[5, 7, 9], [4, 6, 4], [3, 6, 1], [3, 2, 3], [2, 1, 6]] 14 6 4 5 6 [[2,6,6], [6,3,7], [4,6,7], [6,5,11], [2,5,12], [5,3,20], [2,4 programmers.co.kr 풀이 알고리즘을 조금이나마 공부해본 입장에선 전형적인 문제였습니다. 1-a) 플로이드-..
문제 링크 programmers.co.kr/learn/courses/30/lessons/72411 코딩테스트 연습 - 메뉴 리뉴얼 레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 programmers.co.kr 풀이 1) 각 order마다 가능한 모든 메뉴 조합을 구해줍니다. ( line 8 ~ 18 ) 2) order 전체에 대해1에서 구한 각 조합이 몇 번씩 나오는지 카운팅해줍니다. ( line 16 ) 3) course 개수 별로 가장 많이 나온 조합들을 리스트로 구해줍니다. ( line 20 ~ ) 정답 코드 Javascript function solution(or..
문제 링크 programmers.co.kr/learn/courses/30/lessons/72410 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 카카오계정개발팀에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. 네오에게 주어진 첫 업무는 새로 가 programmers.co.kr 풀이 문제에서 설명한 규칙대로 구현하면 됩니다. 굳이 팁을 찾자면 원본 문자열을 수정하는 것보다 필요할 때마다 새로운 문자열을 만드는 식으로 구현하는 게 더 편할 듯합니다. 정답 코드 #include using namespace std; bool isLower(char c) { return 'a'