목록전체 글 (117)
마이의 개발 블로그
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음에는 메시지를 먼저 만들어주고 나중에 마지막 닉네임으로 전부 교체해주는 식으로 접근하였으나, 시간초과와 런타임 에러가 나서 접근방식을 바꾸고 해결된 문제이다. - record를 한 바퀴 돌며 id에 해당하는 마지막 닉네임을 map에 저장 (key: 아이디, value: 닉네임) - 같은 반복문 안에서 Change 명령어를 제외한 Enter, Leave의 경우에만 list에 저장 - list 사이즈만큼 String[] answer 생성 - map.get 메서드로 ID 가져오기 (중요) - Enter, Lea..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내용만 보면 텍스트를 이리저리 다뤄야할 것 같았는데 막상 읽어보니 경우의 수를 구하는 문제였다. - HashMap을 선언하여 얼굴, 상의, 하의, 겉옷의 개수를 카운트함 - 종류별 옷의 개수에 안 입는 경우를 더한 후 곱하기 : (얼굴 + 1) * ... * (겉옷 + 1) - 마지막에 전부 안 입는 경우 1을 빼줌 Note - 고등학교 때 배운 조합식(nCr)을 바로 떠올리긴 했지만 구체적인 수식이 정확하게 기억나지 않아 개념을 찾다보니 결국 전체 경우의 수를 구하면 되는 문제라고 판단하게 되었다. - 전체..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 우선순위 대기열이다보니 스택이나 큐를 사용해서 풀어보려고 했는데 결국 반복문으로 해결했다. - 계속 한쪽방향으로 순회하며 1) 문서의 가장 큰 우선순위 여부 체크 2) 가장 큰 우선순위인 경우 프린트 (해당 문서 우선순위를 0으로 변경) 3) 프린트 순서(order) 증가 4) 프린트된 문서가 location인 경우 순서 반환 Note - 이 문제의 경우 탐색이 끝난 후 다음 index로 넘어갈 때 자동으로 이전 index의 문서가 마지막 프린트 우선순위가 되므로 별도로 문서의 우선순위를 저장할 필요가 없다고..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 모든 경우의 수를 탐색해야하는 문제이다보니 재귀함수를 선언하여 DFS로 해결했다. - int[] numbers를 탐색하며 마지막 인덱스까지 각 idx의 숫자를 더하거나 뺌 - idx가 마지막인 경우, sum을 target과 비교하여 일치하면 경우의 수 1을, 일치하지 않으면 0을 반환함 - 반환할 때마다 경우의 수가 더해져 최초 호출된 메서드는 전체 경우의 수를 반환함 Note - 멤버 변수(lastIdx, targetNum, targetNums)는 메서드를 간단하게 작성하고 싶어 사용했다. - 간단한 문제인..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 방식 제시된 용어와 그래프에 잠깐 당황하긴 했으나 이해하고보니 구간별 면적을 구하여 더하면 해결할 수 있는 문제였다. 로직 설명 - 숫자 k에 대한 우박수열을 구하여 ArrayList에 저장함 (구간별 그래프의 높이) - 제시된 x좌표 유효 여부 판별 후 예외처리 - 제시된 x좌표들을 기준으로 구간별 면적 산출 후 더해주기 (사다리꼴: (윗변 + 아랫변) * 높이 / 2) 작성 코드 import java.util.*; class Solution { public double[] solution(int k,..