분류 전체보기 193

📑 프로그래머스_택배상자_day14

알고리즘 챌린지 14일 차이다. 사실 어제 포스팅을 했어야 했지만, 어제는 지방에 당일 출장을 갔다가 올라와서 바로 기절해 버렸다.. 아예 넘길 순 없으니 오늘은 문제 두 개를 풀고자 한다. 프로그래머스 Level2 택배상자 문제로 정답률은 55%인 준수한 문제이다. https://school.programmers.co.kr/learn/courses/30/lessons/131704 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 택배가 나오는 메인 컨테이너 벨트는 FIFO구조로 나오게 되고, 택배를 트럭에 싣는 우선순위가 존재한다. 택배를 임시로 저장할 예..

📑 프로그래머스_요격 시스템_day13

알고리즘 챌린지 13일 차이다. 오늘은 프로그래머스 Level2로 분류된 요격 시스템 문제를 가져왔다. https://school.programmers.co.kr/learn/courses/30/lessons/181188 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답률을 보고 좀 어려운가 싶어서 다른 문제를 풀까 했지만 생각보다 쉽게 문제를 풀이할 수 있었다. 백준이나 프로그래머스나 아무리 문제를 풀어보아도 난이도 측정 기준은 아직도 모르겠다. 이 문제를 푸는 핵심 로직은 겹치는 구간을 일일이 세는 것이 아니라 반대로 끊기는 부분을 찾는 것이다. 로직..

📑 프로그래머스_귤 고르기_day12

알고리즘 챌린지 12일 차이다. 주말에 푹 쉬고 하니 확실히 상쾌하고 귀찮은 마음이 덜 생기는 것 같다. 목표를 향해 열심히 달려가는 것도 좋지만 역시 충분한 휴식이 병행되어야 한다는 점을 다시금 깨달았다. 오늘은 프로그래머스 Level2로 분류된 귤고르기 문제이다. https://school.programmers.co.kr/learn/courses/30/lessons/138476?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해당 문제 또한 자료구조를 이용하면 쉽게 풀수 있는 문제로 최근에 풀었던 시소 짝꿍문제와 상당히 유..

📑 프로그래머스_리코쳇 로봇_Day11

알고리즘 챌린지 11일차이다. 아무리 생각해봐도 주말엔 쉬는게 좋아서 쉬기로 했다. ㅋㅋ 귀찮아서 그런게 아니고,, 좀 더 오랜 기간 동안 챌린지를 이어나가기 위함이다. 오늘도 프로그래머스 Level2에 분류된 BFS문제를 가져왔다. https://school.programmers.co.kr/learn/courses/30/lessons/169199?language=java 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 기존의 BFS 로직을 사용해 문제를 풀면 쉽게 풀이할 수 있지만 문제에서 주어진 조건에 따라 조금의 추가 수정을 거치면 되는 쉬운 문제이다..

📑 프로그래머스_시소짝꿍_Day10

알고리즘 챌린지 10일 차이다. 시작할 때는 조금 자신이 없었지만 어느덧 열흘 가까이하다 보니 자신감이 생기고 더 잘할 수 있을 것 같은 느낌이 샘솟는다. 오늘은 프로그래머스 level2에 분류된 시소짝꿍 문제를 가져왔다. 조건을 보자마자 완전 탐색(O(n^2))은 어려울 것이라는 생각이 들었을 것이다. 그렇다면 한 번의 반복(O(n))으로 시간 복잡도를 최적화하는 방법을 찾아보아야 한다. 간단하게 생각해보면 각 무게마다 1:1, 1:2, 2:3, 3:4 비율의 무게를 가진 사람이 몇 명 있는지 체크해보아야 한다. 경우의 수를 살펴보기 전에 문제에서는 자세하게 언급하지 않았지만 순서쌍이라고 했다. 그 말인 즉, 순서쌍에 포함되는 사람의 종류는 구분이 필요하지만 같은 사람끼리는 순서를 고려할 필요가 없다...

📑 프로그래머스_마법의 엘리베이터_Day9

알고리즘 챌린지 9일 차이다. 오늘은 프로그래머스 Level2에 분류된 마법의 엘리베이터 문제를 가져왔다. https://school.programmers.co.kr/learn/courses/30/lessons/148653 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 조건을 따지는 것이 크게 어렵지 않기 때문에 손으로 몇 번 써보면 금방 문제를 풀이할 수 있을 것이다. 결론적으로 모든 자릿수의 값을 0으로 만들어야 하는데, 위로 가냐 아래로 가냐의 차이일 뿐이다. 위로 가는 경우 다음 자릿수의 값이 +1이 되기 때문에 경우의 수를 조금만 더 꼼꼼히 챙겨..

📑 프로그래머스_호텔 대실_Day8

알고리즘 챌린지 8일 차이다. 막상 시작해 보니 어찌어찌하고 있기는 한데, 조금 더 열심히 하려면 주말은 쉬는 걸로 할 걸 그랬나 보다.. 다다음주에는 여행을 가니 할 수 있을 때 열심히 꾸준히 해야겠다. 오늘도 프로그래머스 Level2에 분류된 문제를 가지고 왔다. https://school.programmers.co.kr/learn/courses/30/lessons/155651?language=java 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 다양한 방법으로 풀 수 있겠지만 필자는 비교적 간단하게 구간합 알고리즘을 사용했다. 배열의 길이가 100..

📑 프로그래머스_광물캐기_Day7

알고리즘 챌린지 7일차이다. 오늘로서 설 연휴 마지막날이기도 하다. 스스로 자제하고 덜 나간것도 있긴하지만 약속이 좀 적었어서 집에서 알고리즘을 풀 수 있었던것 같다 ㅋㅋ 오늘은 프로그래머스 Level2로 분류된 광물 캐기 문제를 풀어보았다. 동적 계획법은 아니지만 그리디 알고리즘을 사용해서 풀이했다. 문제에서 주어진 조건만 잘 분석하면 풀 수 있는 쉬운 문제였다. 세 개의 곡괭이 중에서 하나를 골라(=그리디 알고리즘) 최소 피로도를 구한다. 한 곡괭이로 최대 5개의 광물을 캘 수 있다, 선택한 곡괭이는 다 쓸때까지 바꿀 수 없다. (= 5개씩 그룹화) 곡괭이를 다 쓰거나 광물을 다 캔 경우 종료한다. (= 반복의 탈출 조건) 코드의 주석을 달아놓았으니 이해가 어렵지 않을 것 같지만 핵심 로직을 간단히 ..

📑 프로그래머스_뒤에 있는 큰 수_Day6

알고리즘 챌린지 6일 차이다. 연휴 기간인 만큼 조금 쉬운 문제를 푸는 점은 양해 바란다... ㅎ 오늘은 자바로만 문제를 풀이해보고자 한다. https://school.programmers.co.kr/learn/courses/30/lessons/154539?language=java 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 간단하게 이중 반복문을 사용하여 완전탐색을 하면 쉽게 풀리겠지만, 배열의 크기가 최악의 경우 1,000,000이기 때문에 시간초과가 무조건 날 거다. 효율적이지도 않고. 이런 경우 특정한 알고리즘을 떠올리기 전에(명확하게 눈에 보이..

📑 프로그래머스_연속된 부분 수열의 합_Day5

알고리즘 챌린지 5일 차이다. 오늘은 정말 아슬아슬했다. 한 잔 하러 나갔다가 마음을 돌려 집에 와서 알고리즘을 풀었다. 오늘도 마찬가지로 프로그래머스 Level 2 에 분류된 문제이다. 문제가 익숙한 듯 어려운 듯 쉽지만 슬라이딩 윈도 기법을 알고 있다면 생각보다 쉽게 풀이할 수 있다. https://school.programmers.co.kr/learn/courses/30/lessons/178870?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 부분 수열을 나타낼 시작과 끝 포인터를 논리적으로 만들어준다. 포인터를 하나씩..

📑 프로그래머스_아날로그시계_Day4

알고리즘 챌린지 4일 차이다. 오늘부터 설 명절 연휴가 시작되었다. 오전에 가족들과 당일치기로 강릉을 다녀와서 그런지 너무 피곤해가지고 오늘은 스킵할까 고민해 봤지만, 꾹 참고 그래도 한 문제만 풀기 위해 컴퓨터를 켰다. 오랜만에 알고리즘을 푸는 것이라 천천히 감을 되찾으려고 프로그래머스 level2만 먼저 풀어보고 있는데,,, 오늘 고른 문제는 진짜 안그래도 피곤해서 그런지 포기할까 싶었다. ㅋㅋㅋ Level2치고 너무 어려운 거 아닌가...? 싶을 정도였다. 정답률이 11%이길래 긴가민가 하다가 얼마나 어렵겠어 했는데 따져야 할 조건이 너무 어렵고, 접근 자체도 간단한 듯 간단하지 않았다. 이해가 어려울 것 같기 때문에 하나하나 차근차근 최대한 상세하게 설명해 보도록 하겠다. 오늘은 파이썬 말고,, ..

📑 프로그래머스_숫자 변환하기_Day3

알고리즘 풀이 챌린지 3일차이다. 평일에는 출근해서 점심시간에 짬짬이 풀고 포스팅을 하고 있지만,, 내일부터 시작될 설 연휴동안 문제를 풀 수 있을까 걱정이다.. ㅋㅋ 이왕 시작한거 연휴에도 쉬지 않고 매일 한 문제씩 꼭 진행해보자. 오늘은 프로그래머스 level2로 분류된 동적 계획법 문제를 가지고 왔다. https://school.programmers.co.kr/learn/courses/30/lessons/154538?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 주어진 동전으로 내야하는 금액을 맞추는 것과 아주 비슷한 ..