Algorithm

Algorithm/Java

[백준] 2210 숫자판 점프

https://www.acmicpc.net/problem/2210순서가 중요하긴 하나 숫자가 겹친다면 같은 숫자가 가능함중복 불가능한 배열에 나올 수 있는 거 dfs로 다 때려박고 개수 리턴할까이게 경우의 수를 따지려면 계산으로 해결할 게 아니라 실제로 방문해보면서 나오는 결과를 저장해야 할 것 같음중복 불가능한 배열의 타입은 Set으로, HashSet을 사용하면 될 것 같다 import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.HashSet;import java.util.Iterator;import java.util.Set;import java.util.StringTokenizer;public class Main ..

Algorithm/Java

[백준] 2251 물통

https://www.acmicpc.net/problem/2251bfs를 통해 a가 빌 때의 모든 경우의 수를 따져 볼 수 있다.bfs를 거쳐서 한 번의 시도가 끝나는 경우는 a에 담긴 물의 양이 0이 되는 경우이고, 이 경우의 c의 물 양을 중복되지 않게 저장하면 된다. visited를 사용해 현재 물통에 담겨있는 현황이 중복되지 않게 한다 - 중복 탐색하지 않게! import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.*;public class Main { static boolean[][][] visited; static List answer = new ArrayList(); int[] contai..

Algorithm/Java

[백준] 2589 보물섬

https://www.acmicpc.net/problem/2589최단거리들 중 최장거리를 찾는 문제이기 때문에확정적으로 최단거리를 찾을 수 있는 BFS를 사용해야 한다.BFS는 큐(Queue)를 이용하여 구현하면 된다.import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.Arrays;import java.util.LinkedList;import java.util.Queue;import java.util.StringTokenizer;public class Main { static int[] dy = {0, 1, 0, -1}; static int[] dx = {-1, 0, 1, 0}; public voi..

Algorithm/Java

[프로그래머스] 뉴스 클러스터링

https://school.programmers.co.kr/learn/courses/30/lessons/17677 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr주어진 예제 입출력을 잘 확인해야 하는 문제였다.divide by zero의 경우 1로 취급하여 65536이 나오게 해야 했음!단순무식하게 해결한 것 같아 중복, 교집합 확인하는 방법을 수정해야 할 것 같다.import java.util.ArrayList;import java.util.List;class Solution { public int solution(String str1, String s..

Algorithm/Java

[백준] 28278 스택 2

https://www.acmicpc.net/problem/28278 import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.Stack;import java.util.StringTokenizer;public class Main { public void solution() throws Exception{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilder(); int n = Integer.parseInt(br.readLine()); ..

Algorithm/Java

[자바-알고리즘-문제풀이-코테대비] Section 7 Recursive, Tree, Graph(DFS, BFS 기초) #1~4

Num1 public class Num1 { public void DFS(int n) { if (n == 0) return; else { DFS(n - 1); System.out.print(n+" "); } } public static void main(String[] args) { Num1 T = new Num1(); T.DFS(3); } } Num2 public class Num2 { public void loop(int x){ //반복문으로 풀었음 String ans=""; while(x>0){ ans+=x%2; x/=2; } System.out.println(new StringBuilder(ans).reverse()); return; } public void dfs(int n){ // dfs 사용..

Algorithm/Python

[Leetcode] unique-number-of-occurrence

https://leetcode.com/problems/unique-number-of-occurrences arr에 있는 숫자의 각 개수를 세는 데 반복문으로 일일히 세서 넣을 수도 있지만, collections를 사용하면 쉽게 개수를 셀 수 있다. collections 모듈의 Counter를 사용해, 해당 arr의 숫자와 개수를 dict 타입의 key와 value로 나타낼 수 있다. 이후 set을 사용해 숫자들의 개수가 겹치는 것이 있는 지 확인해 주었다. import collections class Solution: def uniqueOccurrences(self, arr: List[int]) -> bool: dictArr = collections.Counter(arr) if len(dictArr) !..

Algorithm/Python

[프로그래머스] 연속 부분 수열 합의 개수

https://school.programmers.co.kr/learn/courses/30/lessons/131701 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(elements): sums=set() el_len=len(elements) elements=elements[1:el_len]+elements for idx in range(el_len): for i in range(el_len+idx, len(elements)+1): sums.add(sum(elements[idx+el_len-1:i])) for i in range(idx..

Algorithm/Python

[프로그래머스] 할인 행사

https://school.programmers.co.kr/learn/courses/30/lessons/131127 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(want, number, discount): answer = 0 for day in range(len(discount)-9): isOk=True for i in range(len(want)): if not discount[day:day+10].count(want[i])==number[i]: isOk=False break if isOk: answer+=1 return ans..

Algorithm/Python

[프로그래머스] 전화번호 목록

https://school.programmers.co.kr/learn/courses/30/lessons/42577?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr phone_book을 정렬했을 때, phone_book[i]가 phone_book[i+1]의 접두사가 아니라면 다른 것의 접두사도 아닐 것 def solution(phone_book): phone_book.sort() for i in range(0, len(phone_book)-1): if phone_book[i+1].startswith(phone_book[i]): ..

yoursin
'Algorithm' 카테고리의 글 목록 (17 Page)