본문 바로가기

Programmers

(7)
[Algorithm/Swift] 프로그래머스(Lv.3) - 표 편집 안녕하세요 제인입니다 :) 연결리스트를 활용하는 문제를 풀어보게 되어 해당 내용에 대해 정리해보려고 하는데요, 문제를 풀이하며 연결리스트(LinkedList)를 Swift로 구현하는 방법에 대해서 간단하게 정리해보겠습니다! 문제 링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 처음 접근 저도 처음부터 연결리스트를 써야겠다는 아이디어를 떠올리지 못해 한 번에 맞추지 못했습니다,, 선택된 행을 가리키는 포인터를 두고 명령어 케이스에 따라 알맞은 처리를 할 수 있도록(포인터 이동, 삭제된 행 인덱스 기록 등) 포인터를 이용해 구현하는 방법으로 풀..
[Algorithm/Swift] 프로그래머스(Lv.3) - 파괴되지 않은 건물 안녕하세요 제인입니다 :) 알고리즘 문제를 풀다가 누적합을 이용해 구간의 변화를 효율적으로 계산하는 방법에 대해 새로 알게 되어 문제 풀이와 함께 정리해보려고 합니다. 문제 풀이를 통해 누적합에 대해 정리해보겠습니다. 문제 링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 처음 접근 해당 문제는 적군이 특정 건물들을 공격하고 아군이 회복하는 과정을 거쳐 최종적으로 파괴되지 않은 건물의 개수를 구하는 문제입니다. 그렇기 때문에 2차원 배열 요소의 값의 변화를 효율적으로 처리하는 것이 관건입니다! (효율성 테스트 존재) 저는 효율적인 처리 방법에..
[Algorithm/Swift] 프로그래머스(Lv.3) - 스티커 모으기(2) 안녕하세요 제인입니다! 오늘은 문제 풀이를 통해 dp 유형 풀이 과정을 정리해보도록 하겠습니다. 해당 문제를 풀면서 대표적인 dp 유형이라고 생각이 들어 정리해두면 좋을 것 같아서 가져왔습니다! 문제 링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 처음 접근 저는 처음에 투포인터로 접근을 했었는데요,, 다른 풀이를 참고해서 dp로 해결한 후 생각해보니까 dp로 풀 수 밖에 없는 문제라는 생각이 드는 것 같습니다..! 처음에 투포인터로 접근한 이유는 start, end 포인터 모두 0에 두고 시작해서 처음으로 떼는 스티커의 인덱스에 start..
[Algorithm/Swift] 프로그래머스(Lv.3) - 입국심사 안녕하세요 제인입니다! 요즘은 프로그래머스의 문제들을 꾸준히 풀면서 취약한 유형의 문제들을 프로그래머스, 백준에서 더 찾아서 연습해보는 방식으로 PS 실력을 꾸준히 향상시키려고 노력하고 있는데요, 오늘은 저번에 문제를 통해 이분탐색 문제를 처음 접하고, 더 연습해보고 싶어서 프로그래머스에서 이분탐색 연습문제를 찾아서 풀어봤습니다! 풀다보니 징검다리 건너기 문제와 비슷한 점이 많은 것 같아서 이분탐색 문제를 접했을 때 접근하는 방법에 대해 기록해두면 좋을 것 같아서 가져와봤습니다 :) 문제 링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 일단..
[Algorithm/Swift] 프로그래머스(Lv.2) - 가장 큰 정사각형 찾기 안녕하세요 제인입니다! PS..를 들고 왔습니다....혼자 해결못한 문제가 또 생긴 것이죠..예.. PS 실력이 왜 이렇게 안늘까요....좀 더 많은 문제를 풀어봐야겠어요.. 문제 링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 일단 이 문제는 DP(Dynamic Programming) 알고리즘을 이용해 풀어야하는 문제였습니다. 1915번: 가장 큰 정사각형 첫째 줄에 n, m(1 ≤ n, m ≤ 1,000)이 주어진다. 다음 n개의 줄에는 m개의 숫자로 배열이 주어진다. www.acmicpc.net 프로그래머스의 연습문제라 백준에도 동일한..
[Algorithm/Swift] 프로그래머스(Lv.3) - 징검다리 건너기 안녕하세요 제인입니다:) PS로 하루를 힘차게 시작하려고 했는데 이제 할 일을 좀 하고 문제를 풀어야겠어요...ㅇ maxElement { max = maxElement } pointer1 += 1 pointer2 += 1 } return max } 처음에는 투 포인터를 활용해 슬라이딩 윈도우 기법으로 k개의 디딤돌을 한 구간으로 설정해서 전체를 스캔하는 방식으로 풀었습니다. 왜냐하면, 징검다리를 더 이상 건너지 못하게 되는 순간은 적힌 숫자가 0이 되는 디딤돌이 k개 연달아 나오는 경우이기 때문에 길이가 k인 구간 안에서의 최댓값이 해당 구간을 건널 수 있는 사람의 최대 숫자라는 것을 파악했고, 항상 가장 가까운 돌을 밟아야 하므로 한 사람이 건널 때마다 전체 돌의 숫자가 1씩 감소하기 때문에 전체 다리..
[Algorithm/Swift] 프로그래머스(Lv.3) - 기지국 설치 안녕하세요 제인입니다:) 꽤나 오랜만이죠..? 인간이 왤케 게으를까요 오랜만에 티스토리를 들어왔더니 피드에 새 글이 엄청 많네요.. 다들 꾸준한 기록 대단해..본받겠습니다.. 덕분에 저도 자극받고 다시 열심히 티스토리 글을 열심히 쪄보려고 합니다!!!! 오늘은 PS 기록을 남겨보려고 하는데 갑자기 Lv3..? 티스토리에 풀이기록은 안했지만.. 머 풀다보니 레벨3까지 왔네요? 레벨3 문제를 풀다보니 확실히 특정 알고리즘을 사용해야하거나, 효율성까지 고려해야하는 문제가 많아서 기록의 필요성을 느꼈습니다. 그래서 앞으로 문제 풀이과정에서 새로 알게 되는 좋은 접근 방법이나 풀이 방법들을 글로 남겨보려고 합니다! 저의 PS 효율성을 위해 문제에 대한 설명은 생략하고 접근 및 풀이 위주로 기록해나가도록 할게요🙃🙂..