Algorithm 172

[Lv.3] 순위 : Java / 플로이드 워셜

프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr #알고리즘 아이디어1.방향 그래프 만들기 a->b : a가 b를 이김2.BFS 탐색 : 자신이 이길 수 있는 노드수, 자신에게 도달 가능한 노드 수 계산=> 자신이 이길 수 있는 노드수 + 자신에게 도달 가능한 노드 수(지는 경우) = n-1 인 경우에 정확한 순위 알 수 있음 => BFS/DFS 탐색 또는 플로이드워셜로 탐색 가능로그래머스>플로이드워셜 : 모든 지점에서 모든 지점까지의 최단 거리 구하기 가능 -BFS 풀이 코드양방향 그래프 만들기각 노드에서 2번 탐색이기는 수 + 지는 수 == n-1 인지 확ㅇ니import java.util.*;class Solu..

[Lv.2] 방문 길이 : Java / HashSet

프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 좌표가 아니라 "길(간선)"을 HashSet으로 관리>양방향 간선으로 넣어줘야 함 => 길 개수 구할 때 size()/2 해줘야 함 #알고리즘 순서1 시작 좌표 (0,0) 2 명령 하나씩 처리 → 다음 좌표(nx, ny) 계산 3 범위 체크 (-5 ~ 5) → 범위 밖이면 무시 4 길 저장 (x,y,nx,ny) (nx,ny,x,y) 5 현재 좌표 이동 x = nx y = ny 6 마지막에 set.size()/2 반환 *HashSet 형식으로 "x, y, nx, ny" 식의 문자열 형태로 저장import java.util.*;class..

[Lv.1] 문자열 내 마음대로 정렬하기 / 사전 순 정렬

프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr import java.util.*;class Solution { public String[] solution(String[] strings, int n) { // 오름차순 정렬 // 인덱스의 문자 같은 경우 > 사전순 Arrays.sort(strings, (a,b)->{ if(a.charAt(n)== b.charAt(n)){ // 사전순 return a.compareTo(b); } ..

[Lv.1] 이상한 문자 만들기 : Java

프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr -틀린 코드원인 : split(" ") 사용했기 때문 > 연속된 공백 있는 경우 문제 됨class Solution { // 짝수번째 알파벳은 대문자, 홀수번째 알파벳은 소문자로 바꾼 문자열 리턴 public String solution(String s) { StringBuilder answer = new StringBuilder(); // 공백 별로 단어 나누기 // 단어별 인덱스 확인해서 문자열 이어붙이기 + 공백도 String[] words = s.split(" "); // 공백 별로..

728x90