본문 바로가기

알고리즘80

[프로그래머스] level 3 네트워크 (DFS, BFS) 문제링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 포인트 자기자신은 항상 연결되어 있으며 == 1 상호 연결되어 있는 경우 하나의 네트워크로 취급한다. DFS package programmers.dfsbfs; public class NetworkDfsRemind { public int solution(int n, int[][] computers) { //컴퓨터 개수, 네트워크 연결 정보 int answer = 0; //방문 여부 표시 boolean[] visited = new boolean[n]; for(int i=0; i 2020. 3. 28.
[프로그래머스] level 2 타겟넘버 문제 링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이(DFS) /* * 타겟 넘버 문제 설명 n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+1 = 3 +1+1-1+1+1 = 3 +1+1+1-1+1 = 3 +1+1+1+1-1 = 3 사용할 수 있는 숫자가 담긴 배열 numbers, 타겟 넘버 target이 매개변수로 주어질 때 숫자를 적절히 더하고 빼서 타겟 넘.. 2020. 3. 28.
[프로그래머스] 카카오프렌즈 컬러링북 (재귀) 문제링크 코딩테스트 연습 - 카카오프렌즈 컬러링북 | 프로그래머스 6 4 [[1, 1, 1, 0], [1, 2, 2, 0], [1, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 3], [0, 0, 0, 3]] [4, 5] programmers.co.kr 그래프 조건에서 == 1 일 때와, != 0 인 경우의 차이점은 뭘까. 무조건 == 1로만 생각하고 풀었더니 성공하지 못했다. 백준2667 단지번호 붙이기 [백준] 2667번 단지번호붙이기 Java (DFS, BFS) 그래프 관련 문제들의 유형이 다 비슷비슷 한 것 같아보인다. 확실히 짚고 넘어가야 할 필요를 느꼈다. 물론 돌아서면 까먹어서 문제.. 문제링크 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가.. n1tjrgns.t.. 2020. 2. 16.
[백준] 2667번 단지번호붙이기 Java (DFS, BFS) 그래프 관련 문제들의 유형이 다 비슷비슷 한 것 같아보인다. 확실히 짚고 넘어가야 할 필요를 느꼈다. 물론 돌아서면 까먹어서 문제.. 문제링크 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집들의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여기서 연결되었다는 것은 어떤 집이 좌우, 혹은 아래위로 다른 집이 있는 경우를 말한다. 대각선상에 집이 있는 경우는 연결된 것이 아니다. 는 을 단지별로 번호를 붙인 것이다. 지도를 입력하여 단지수를 출력하고, 각 단지에 속하는 집의 수 www.acmicpc.net 최대한 main 부분은 건드리지 않고 DFS, BFS 부분만 바꿔서 정리 하려고 노력했.. 2020. 2. 16.
[프로그래머스] 주식가격 (level 2) 이 문제는 그렇게 많이 어려웠던 문제는 아니였지만, 내가 문제를 풀었던 과정을 기록해야 할 필요를 느껴 정리를 하려한다. 문제 소스코드 public int[] solution(int[] prices) { int[] answer = new int[prices.length]; LinkedList stockQue = new LinkedList(); ArrayList result = new ArrayList(); for(int p : prices){ stockQue.add(p); } int stockSize = stockQue.size(); while(!stockQue.isEmpty()){ int current = stockQue.poll(); //System.out.println("current : "+ cu.. 2020. 1. 11.
[프로그래머스] 체육복 (level 1) - 그리디 알고리즘(탐욕법) 문제 그리디 알고리즘에 대한 문제를 처음 풀어보았다. 이게 1단계라고..? 소스코드 public int solution(int n, int[] lost, int[] reserve) { int answer = 0; int lostLen = lost.length; ArrayList losts = new ArrayList(); ArrayList res = new ArrayList(); for(int a : lost){ losts.add(a); } for(int a : reserve){ res.add(a); } //잃어버린 사람 제외 answer = n - lostLen; //도둑질 맞은 경우 for(int i=0; i 2020. 1. 9.