프로그래머스 21

📑 프로그래머스_가장 큰 정사각형 찾기_Day22

https://school.programmers.co.kr/learn/courses/30/lessons/12905 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 오늘은 프로그래머스 Level2로 분류된 문제를 풀어보았다. 2차원 배열의 크기가 최대 1000 x 1000으로 크지 않아 보이지만, 문제를 보자마자 직감적으로 브루트포스로 풀게 되면 효율성 채점에서 하나 정도는 틀리겠거니 싶었다. 사실 이런 문제가 제일 어렵고 까다로운 것 같다. 정해진 공식이 있는 것도 아니고, 머리를 좀 굴려서 알고리즘을 효율적으로 최적화해야 하기 때문이다. 뭐 이렇게 생각하..

📑 프로그래머스_삼각 달팽이_Day21

오늘은 알고리즘 챌린지 21일 차이다. level2에 분류된 구현 문제를 가져와봤다. https://school.programmers.co.kr/learn/courses/30/lessons/68645 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 최대한 단순하게 풀어보려 했지만, 규칙은 찾기가 어려웠고,,, 구현을 하고자 한다면 n의 크기가 1000으로 크지 않기 때문에 조건만 잘 설정해 주면 된다. 이런 문제는 실제로 삼각 형태의 자료구조를 만들 수 없기 때문에, 구현 가능한 2차원 배열 상태에서 논리적으로 삼각 배열을 구현하는 것이다. 배열에 코드를 ..

📑 프로그래머스_스트림_day20

오늘은 프로그래머스 Level2로 분류된 문제를 풀이하되, 좀 쉬운 문제 3문제를 풀어보았다. 문제 자체는 크게 어렵지 않았고, 겸사겸사 stream을 연습하는 목적으로 풀이해 보았다. Sol 1> https://school.programmers.co.kr/learn/courses/30/lessons/12939 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 첫 번째 문제는 단순하게 최댓값과 최솟값을 구해서 리턴하는 문제이다. 본래라면 Arrays.sort를 사용하거나 배열의 크기를 고려하여 버블 혹은 swap을 사용한 정렬로 구할수도 있는 단순한 문제이다..

📑 프로그래머스_뉴스 클러스터링_day19

https://school.programmers.co.kr/learn/courses/30/lessons/17677 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 오늘은 알고리즘 챌린지 19일 차이다. 오늘도 어제처럼 카카오 블라인드 채용 시험 문제를 가져왔다. 난이도는 중으로 분류되어 적당히 어려웠던 것 같지만, 시간 복잡도를 고려하지 않아도 될 정도로 조건의 범위가 작고, 처음 보는 개념에 대해서도 설명이 상세하게 나와있기 때문에 그대로 코드만 구현할 수 있다면 쉽게 풀 수 있을 것이다. 문제를 풀기 위한 핵심 키포인트는 아래와 같다. 교집합 수와 합집..

📑 프로그래머스_캐시_day18

알고리즘 챌린지 18일 차이다. 오늘은 Level2로 분류된 카카오 블라인드 채용 문제를 가져왔다. 카카오 해설을 보니 난이도가 (하)로 분류되어 있지만 정답률이 약 45%였다고 한다. 이 문제를 풀기 위한 키포인트는 LRU를 구현할 수 있는가와 제약 조건(cacheSize == 0)을 제대로 이해했는가 정도가 될 것이다. https://school.programmers.co.kr/learn/courses/30/lessons/17680 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 주어진 상황 자체는 단순하다. 페이지 교체 알고리즘인 LRU는 캐싱 공간이..

📑 프로그래머스_의상_day17

프로그래머스 알고리즘 챌린지 17일 차이다. 오늘도 level2에 분류된 자료구조 문제를 가져와 보았다. 문제를 읽다보니 분명히 풀었던 문제인 것 같은데, 안 푼문제로 분류되어 있어서 뭐지 하고 풀었다. 문제를 다 풀어보고 나니 취업준비 기간 때 같이 학원 다니던 친구가 질문했던 문제였었다는 게 떠올랐다. 그때 당시에는 생각보다 쉽게 풀이해서 설명해줬었는데 이번엔 그러지 않은 것을 보니 확실히 감이 많이 죽은 것 같다. https://school.programmers.co.kr/learn/courses/30/lessons/42578 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. prog..

📑 프로그래머스_예상 대진표_day16

알고리즘 챌린지 16일 차이다. 지난주에 야근과 퇴근 후 바쁜 일정으로 인하여 1주를 통으로 쭉 밀려버렸다... 밀린 수준이 아니라 챌린지의 존재 자체를 까먹어 버렸다... 3월 새 학기를 시작하는 대학생의 마음으로 다시금 시작해 보자. 오늘은 프로그래머스 level2 중에서 쉬운 문제를 가져왔다. https://school.programmers.co.kr/learn/courses/30/lessons/12985 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제를 읽다 보면 난해해 보이지만 조건자체가 규칙이 있어 간단한 문제이다. 조건부터 차근차근 분석해..

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

알고리즘 챌린지 15일 차이다. 오늘은 바로 Level2에 분류된 원형 수열문제를 풀어보겠다. https://school.programmers.co.kr/learn/courses/30/lessons/131701 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 원형 순열의 문제를 푸는 사람들의 경우 보통 순열이 끊기지 않고 반복됨을 표현하기 위해서 배열을 두배로 확장해 이어 붙이는 경우가 있는데, 그럴 필요 없이 배열의 인덱스를 모드 연산으로 사용하면 된다. 쉽게 말해, 길이가 5인 배열{1,2,3,4,5}이 있는데 이 배열을 논리적으로 원형으로 이어져 있다..

📑 프로그래머스_택배상자_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 로직을 사용해 문제를 풀면 쉽게 풀이할 수 있지만 문제에서 주어진 조건에 따라 조금의 추가 수정을 거치면 되는 쉬운 문제이다..