Algorithm/Programmers 72

[Lv.2] 이진 변환 반복하기 : Java / 이진법 변환 함수

프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr x = 01110101. x의 모든 0 제거하기 > 11112. x의 길이인 c를 2진법으로 표현하기 > c=x.length 4 > 4를 이진수로 1003.1 될때까지 반복=> 2진 변환의 횟수, 제거된 모든 0의 개수를 배열에 담아 리턴 #예시011100제거 2개, 111, 길이 3 > 이진법 11 0제거 0개, 11, 길이 2 > 이진법 100제거 1개, 1, 길이 1 > 종료3, 3 리턴 #이진법 변환 코드Java의 Integer.toBinaryString() 함수로 바로 이진법 변환이 가능하긴함.아래 코드는 직접 이진법 변환하는 자바 함수>2진수 구하는 법..

[Lv.2] 전화번호 목록 : Java

프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 배열 정렬 후 i+1번째 전화번호가 i번째 전화번호로 시작하는지 체크(startsWith) import java.util.*;class Solution { // phone_book 의 전화번호가 다른 번호의 접두어이면 false, 아니면 true public boolean solution(String[] phone_book) { Arrays.sort(phone_book); for(int i=0; i

[Lv.3] 여행 경로 : Java

프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 주어진 항공권을 모두 사용해야함 > BFS보다 DFS 백트래킹이 더 효율적 목적지를 사전순으로 정렬하는 법// 목적지를 사전순으로 정렬하기 Arrays.sort(tickets, (a,b)-> { if(a[0].equals(b[0])) return a[1].compareTo(b[1]); return a[0].compareTo(b[0]); }); import java.util.*;class Solution { static boolean[] visited; static List route; ..

[Lv.3] 단어 변환 : Java

프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr begin이랑 target이 몇 개의 문자가 다른지 체크begin의 길이만큼 0번째 같고 1, 2번째...다른 words 찾기words에 target 단어 없으면 0 리턴 위처럼 별 생각없이 고민해봤다. 왜 dfs/bfs 파트에 있는 문제일까 고민하다가 gpt에게 도움을 구했다ㅠ 노드: begin과 words의 각 단어.간선: 두 단어가 한 글자만 다르면 연결.목표: begin에서 target까지의 최단 간선 수 → BFS로 레벨(깊이) 카운트.중요 포인트target이 words에 없으면 답은 0 (문제 조건).begin은 배열에 없어도 시작 노드로 큐에 넣으면 ..

[Lv.2] 최댓값과 최솟값 : Java

프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문자열 s 를 공백을 기준으로 분리하기하나씩 정수 형태로 비교하기최댓값, 최솟값 저장하기 import java.util.*;class Solution { // 최솟값, 최댓값 반환하기 static int max = Integer.MIN_VALUE; static int min = Integer.MAX_VALUE; public String solution(String s) { String answer = ""; String[] string = s.split(" "); // 공백으로 분리하기 ..

[Lv.2] 타겟 넘버 : Java

프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr class Solution { static int target; static int cnt = 0; public int solution(int[] numbers, int target) { // DFS, 백트래킹 > 만들 수 있는 숫자 다 만들어보기 > target이랑 일치하면 카운트 this.target = target; dfs(numbers,0, 0); return cnt; } public static void dfs(int[] numbers, int idx, int..

[Lv.2] 모음 사전 : Java

프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 만들 수 있는 문자열이 몇 개 없으니까 다 만들어보기DFS + 백트래킹 > 원하는 단어랑 일치하면 cnt 리턴 이미 찾은 경우 재귀 멈추는 flag 유의하기 : 조기 중단해야 하는 경우class Solution { static final char[] a = {'A', 'E', 'I', 'O', 'U'}; static String word; static int result = 0; public int solution(String word) { // DFS 백트래킹 이용 > AEIOU 순으로 깊이를 1~5로 확장하면서 단어 하나..

728x90