Algorithm/Problem_프로그래머스55 프로그래머스(사이클 제거, 가사 검색) - Java [사이클 제거] https://programmers.co.kr/learn/courses/30/lessons/49188 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr * 조건 1~N까지의 노드가 존재한다 노드간의 연결된 간선(edges[][])가 주어진다 (무방향) 주어진 그래프에서는 반드시 하나 이상의 사이클이 존재한다 노드를 딱 하나 제거해서 그래프가 사이클이 없도록 만들 수 있다면 해당 노드의 번호를 누적한 합을 출력한다 * 로직 효율성을 만족시키지 못했다. 일단은 정확성을 만족한 로직에 대해 먼저 작성하고 다시 시도해보려한다 크루스칼 알고리즘을 사용.. 2019. 11. 26. 알고리즘(베스트 앨범, 보행자 천국) [베스트 앨범] * 조건 각 곡에 대한 장르(genres), 재생 횟수(plays)가 주어진다 배열의 인덱스가 해당 곡의 고유 번호이다 정렬해야할 조건이 3가지이다. 재생된 횟수가 가장 많은 장르 순으로 내림차순 정렬 해당 장르 내에서 각 곡마다 재생된 횟수 기준으로 내림차순 정렬 만약 각 곡의 재생된 횟수가 같다면 고유 번호로 오름차순 정렬 만약 해당 장르의 곡이 1개라면 1개만 출력, 2개 이상이라면 2개만 리턴한다 베스트 앨범에 들어갈 노래의 고유 번호를 출력한다 * 알고리즘 HashMap * 로직 해쉬맵 형태를 HashMap 구조를 만든다 -> A 리스트에는 HahsMap 형태로 보관한다 ex. classic, [, , ] 장르별로 재생된 횟수를 HashMap 형태로 보관한다 -> B A의 리스트.. 2019. 11. 22. 알고리즘(등굣길, 순위) [등굣길] * 조건 m과 n이 주어진다 집의 위치(1,1)에서 목적지(m,n)까지 갈 수 있는 최단경로의 개수를 구한다 puddles[][]는 홍수로 인해 지나갈 수 없는 좌표를 뜻한다 * 알고리즘 DP * 로직 배열 사이즈를 map[n+1][m+1]로 설정해둔다 집(1,1)을 중심으로 피라미드 형태로 값을 더해가면 목적지까지 갈 수 있는 최소 경로의 경우의 수를 구할 수 있다 배열 전체를 돌 때, 만약 현재 좌표의 값이 0이면서 위의 좌표 값이 갈 수 없는 길이라면 -> 현재 좌표의 값 = 현재 좌표의 왼쪽 값 + 0 왼쪽 좌표 값이 갈 수 없는 길이라면 -> 현재 좌표의 값 = 현재 좌표의 위쪽 값 + 0 둘다 갈 수 있는 길이라면 -> 현재 좌표의 값 = 위쪽 값 + 왼쪽 값 도착지 좌표의 값이 0.. 2019. 11. 21. 이전 1 ··· 12 13 14 15 16 17 18 19 다음