알고리즘/연습문제

문제 정보는 아래 링클르 확인해주세요! [뉴스 클러스터링] 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설명이 장황하게 되어있지만, 결론은 문자열에서 두 단어의 조합을 만들고합집합과 교집합을 만들라는 의미이다. 문제 접근 방법 str1과 str2로 각각 만들 수 있는 단어 조합 리스트를 만든다. 각각의 단어 조합 리스트를 통해 합집합과 교집합을 만들어준다. 주의해야할점은 만들 수 있는 집합이 없는 경우(합집합과 교집합이 0) 또는 합집합은 존재하지만, 교집합만 없는 경우 이 두가지에 유의하면서 구현하면된다. [소스 코드] package algorithm..
문제 정보는 아래 링크를 확인해주세요! [추석 트래픽] 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 접근 방법 로그의 끝난 시간과 처리 속도를 기반으로 시작 시간을 구해준다. 끝난 시간을 기준으로 로그 데이터들을 정렬해준다. n번 째 로그 데이터의 끝난 시간보다 1초 뒤의 시간을 기준점으로 정하고, 로그 데이터들의 시작 시간을 기준으로 1초 뒤의 시간보다 더 빠르면 갯수를 추가한다.(끝난 시간으로 정렬이 되있으므로) 현재 갯수와 최댓값과 비교를 통해 최댓값을 갱신해준다. 코드 설명 문자열로 들어온 로그 데이터를 처리할 Process 클래스 변수 타..
문제 정보는 아래 링크를 확인해주세요! [영어 끝말잇기] 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 접근 방법 이전 단어의 끝 요소와 현재 단어의 첫 요소를 비교 같으면서 단어가 리스트에 없다면, 리스트에 현재 단어를 추가 다르거나 현재 단어가 리스트에 포함되어있다면, 분기문 종료 인덱스가 단어 배열의 길이와 같다면, 분기문을 정상 종료된 동시에 탈락자가 없으므로 0 배열을 반환 분기문이 비정상 종료되었을 시(break을 통해서), 인덱스를 N으로 나눈 나머지+1은 현재 탈락자의 번호를 의미하고, 인덱스를 N으로 나눈 몫+1은 현재 탈락자의 차례..
문제 정보는 아래 링크를 확인해주세요! [점프와 순간이동] 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 접근 방법 N까지의 이동거리이므로 N에서 거꾸로 0이 될 때까지 비교해주는 Top-Down 방식으로 접근했다. N이 2로 나눠지면 나눠진 값을 N에 다시 셋팅하고, N이 2로 나눠지지 않는다면, 결과값+1을 하면서 N이 0이 될 때까지 분기문을 돌리는 방법이다. [소스 코드] package algorithm.programmers; import java.util.*; /* * 2018 summer/winter conding * 점프와 순간 이동 *..
문제 정보는 아래 링크를 확인해주세요! [숫자 게임] 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 접근 방법 A의 대진표가 공개되어있다. B팀의 요소값이 A팀의 요소값보다 큰 값을 대진표로 정한다. B팀이 이긴 횟수를 반환하는게 최댓값이다. 이를 위해서는 A팀과 B팀을 차례로 정렬하고, B팀의 요소가 A팀의 요소를 이기면 결과값+1을 하고, 이기지 못하는 요소일 때는 B팀의 다음 요소를 비교해준다. 모든 요소에대한 비교를 마치면 결과값을 반환한다. [소스 코드] package algorithm.programmers; import java.util...
문제 정보는 아래 링크를 확인해주세요! [기지국 설치] 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 접근 방법 첫 번째 위치부터 while문을 돌면서 설치된 기지국 범위 안에 있는지를 검사 설치된 기지국 범위 밖에 있다면, 현재 위치에서 기지국을 설치했을 때 전파가 가장 멀리 퍼질 수 있는 값인 2*w로 설정하고, 현재 위치를 2*w+1로 설정한 후 결과값+1 설치된 기지국 범위 안에 있다면, 현재 위치를 설치된 기지국 범위+1로 설정 현재 위치가 N에 도달할 때까지 반복 [소스 코드] package algorithm.programmers; /* ..
문제 정보는 아래 링크를 확인해주세요! [스티커 모으기(2)] 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 접근 방법 첫 번째 생각해야할 것은 스티커를 선택하는 방법은 첫 번째를 선택하느냐, 선택하지 않느냐 이 두가지로 나뉜다. 두 번째는 현재 스티커와 현재-2 스티커를 선택했을 때의 결과와 인접 스티커를 선택했을 때의 결과중 최댓값을 구해준다. 이 방식은 DP 방식으로 푸는 것이 유리하므로, 점화식을 세우면 아래와 같다. DP[N] = MAX(DP[N-1], STICKER[N] +DP[N-2]); [소스 코드] package algorithm.p..
문제 정보는 아래 링크를 확인해주세요! [배달] 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 접근 방법 인접 마을에 대한 양방향 정보를 리스트에 담는다 DFS 탐색을 통해 인접 마을과의 거리를 구하면서 K값과 비교한다 무한루프에 빠지지 않도록 visited 배열을 통해 인접 방문 마을의 최솟값으로 셋팅한다 [소스코드] package algorithm.programmers; import java.util.*; /* * 2018 summer/winter conding * 배달 * */ public class Pro12978 { private stati..
iron_jin
'알고리즘/연습문제' 카테고리의 글 목록 (5 Page)