목록구현 (14)
마이의 개발 블로그
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 방식 1사분면의 4분원 안에서 k값에 따라 찍을 수 있는 점의 개수를 모두 구하는 문제이다(원과 관련된 식을 전혀 몰라도 해결 가능). 직관적인 방식은 최초 접근처럼 이중 for문을 사용하여 각 x, y 좌표가 0, 0 으로부터 d 이하의 거리에 위치해있는지를 체크하는 것인데 이럴 경우 시간초과가 나게된다. 탐색을 한 번만 하여 문제를 해결하려면 각 x좌표에 대해 최대 y좌표값을 구하면 된다. 최대 y를 maxY라고 지칭한다면 피타고라스의 정리에 의해 x^2 + maxY^2 = d^2 이므로 maxY 값..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 방식 단순 구현 문제로 금방 해결할 줄 알았으나 케이스 예외처리를 제대로 해주지 못해 애를 먹었던 문제이다. 문제에도 적혀있듯 이동 명령을 수행하며 범위를 벗어나는지 여부와 지도에서 'X'로 막혀있는지 여부의 두 가지 조건만 체크하면 되는 문제인데, 동서남북 각 방향에 따른 예외 처리와 반복문 처리가 각각 달라 길게 작성된 코드를 짧게 처리하는데 애를 먹었다. 더 짧게 하고싶은데 다른 사람들 코드도 길이가 비슷한 걸 보니 어쩔 수 없는 문제였던 것 같기도 하다. 로직 설명 - 시작점 찾기: 문자열 "S"..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 방식 주어진 이름들에 추억 점수를 매치시킨 후, 사진들을 보며 주어진 이름들에 해당하는 인물이 있는 경우에만 점수를 가산하여 각 사진별 점수를 매기면 되는 간단한 문제이다. 특별한 예외사항은 없었다. 로직 설명 - 사진의 개수만큼 답변 배열 초기화 - 이름과 추억점수를 매치시킬 map 선언 후 이름(name)에 해당하는 점수(yearning) map에 집어넣기 - 각 사진(photo[i])에 있는 이름(str)을 탐색하며: 1) map에서 해당되는 이름을 찾아 추억 점수를 sum에 가산 (없는 경우 0점..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 방식 문자열을 처리하여 x항의 계수와 상수 합의 결과값을 구하면 되는 비교적 간단한 문제이다. 더하기만 고려하면 되고 항의 순서가 뒤바뀌는 일도 없어 예외처리할 거의 없었다. 한 가지, x가 1일 경우 1x가 아닌 x로 반환해야한다는 점을 고려하지 못해 중간에 시간이 좀 걸렸다. 로직 설명 - "+" 문자열을 기준으로 split()하여 strArr에 저장 - 계수와 상수를 저장할 int[] count 선언 - strArr에 저장된 각 항을 탐색하며: 1) x항인 경우, x를 없앤 나머지 숫자를 count..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 방식 달리기를 하며 이름이 불리는 선수와 그 선수의 바로 앞에 있는 선수의 순위(위치)를 바꾸어주면 되는 문제이다. 범위를 벗어나는(1등 선수) calling 은 없으므로 별도의 순위변경에 대한 예외처리는 필요없었다. 다만 복잡도를 줄이기 위해 이중 반복문을 통한 탐색이 아닌 해시맵을 활용한 탐색 및 등수의 변경으로 로직을 만들어야했다. 인풋값이 각각 50,000과 100,000이였기 때문이다. 로직 설명 - 선수들의 순위를 이름으로 바로 접근할 수 있도록 map을 선언하여 이름과 순위를 key, val..