코딩테스트
[백준 / Java] 15650번 N과 M (2)
사용한 알고리즘(백트래킹) https://cobi-98.tistory.com/22 [필수 알고리즘] 재귀호출 기본 -백트래킹(Backtracking) 백트래킹 알고리즘 백트래킹(Backtracking) 위 단어를 그대로 해석하고 이해하면 된다.좀더 알고리즘적으로 설명하자면, 어떤 노드의 '유망성'을 판단한 뒤, 해당 노드가 유망하지 않다면 부모 노드 cobi-98.tistory.com 🔒 15650번 N과 M (2) ✔ 문제 설명 🚩 요구사항 분석 탐색 과정에서 값을 담을 int 배열 생성 1부터 N까지 자연수 중에서 중복 없이 M개를 고른 수열 고른 수열은 오름차순이어야 한다. 🔑 문제풀이 자연수 N과 M을 정의하기 위해 BufferedReader을 사용하여 StringTokenizer로 값을 전역변수..
[백준 / Java] 15649번 N과 M (1)
사용한 알고리즘(백트래킹) https://cobi-98.tistory.com/22 [필수 알고리즘] 재귀호출 기본 -백트래킹(Backtracking) 백트래킹 알고리즘 백트래킹(Backtracking) 위 단어를 그대로 해석하고 이해하면 된다.좀더 알고리즘적으로 설명하자면, 어떤 노드의 '유망성'을 판단한 뒤, 해당 노드가 유망하지 않다면 부모 노드 cobi-98.tistory.com 🔒 15649번 N과 M (1) ✔ 문제 설명 🚩 요구사항 분석 백트래킹을 이용하여 방문한 노드를 확인, 검사하기 위한 boolean 배열 생성 탐색 과정에서 값을 담을 int 배열 생성 🔑 문제풀이 자연수 N과 M을 정의하기위해 BufferedReader 을 사용하여 StringTokenizer로 값을 전역변수 지정하였다..
[프로그래머스 / Java] Lv2 - 영어 끝말잇기
🔒 영어 끝말잇기 ✔ 문제 설명 🚩 요구사항 분석 substring을 이용해 앞사람이 말한 마지막 문자 체크 임의의 count 변수를 활용해 인원수와 같으면 차례를 추가해 탈락자 확인 🔑 문제풀이 class Solution { public int[] solution(int n, String[] words) { int[] answer = new int[2]; List gameList = new ArrayList(); int count = 0; int care = 1; for(int i = 0; i
[프로그래머스 / Java] Lv2 - 짝지어 제거하기
🔒 짝지어 제거하기 ✔ 문제 설명 🚩 요구사항 분석 스택을활용해 스택이 비어있지않고 peek 스택 값이 같다면 지우는 방식을 진행했다. 🔑 문제풀이 import java.util.Stack; class Solution { public int solution(String s) { int answer = 0; Stack stack = new Stack(); //1. 문자제거하기 for (int i=0; i < s.length(); i++){ char c = s.charAt(i); // 현재 스택이 비어있지않고 peek 스택의 최상위 값이 c와 같다면 pop if(!stack.isEmpty() && stack.peek() == c){ stack.pop(); }else{ stack.push(c); } } ans..
[프로그래머스 / Java] Lv2 - 이진 변환 반복하기
🔒 이진 변환 반복하기 ✔ 문제 설명 🚩 요구사항 분석 제거할 0의 개수 count에 저장 1을 만들기 위해 반복되는 횟수 저장 0을 제거한 후 남은 1의 개수를 이진 변환, 스트링으로 변환하기위해 Integer.toBinaryString() 활용 🔑 문제풀이 class Solution { public int[] solution(String s) { int[] answer = new int[2]; int zero = 0; int count = 0; int l = 0; while(!s.equals("1")){ zero++; l=0; for(int i=0; i