본문 바로가기

분류 전체보기223

[알고리즘 문제풀이] 프로그래머스 - 주차 요금 계산 / JAVA(자바) https://programmers.co.kr/learn/courses/30/lessons/92341 코딩테스트 연습 - 주차 요금 계산 [180, 5000, 10, 600] ["05:34 5961 IN", "06:00 0000 IN", "06:34 0000 OUT", "07:59 5961 OUT", "07:59 0148 IN", "18:59 0000 IN", "19:09 0148 OUT", "22:59 5961 IN", "23:00 5961 OUT"] [14600, 34400, 5000] programmers.co.kr /** 1. 주차시간 구하기 1-1) 최대 23:59분(또는 출차시간) - 입차시간 = 주차시간 1-2) 인트형으로 파싱 1-3) 입차 시에 해시 저장. 출차 시에 해시 삭제하면서 계산.. 2022. 1. 30.
[알고리즘 문제풀이] 프로그래머스 - K진수에서 소수 개수 구하기 /JAVA https://programmers.co.kr/learn/courses/30/lessons/92335 코딩테스트 연습 - k진수에서 소수 개수 구하기 문제 설명 양의 정수 n이 주어집니다. 이 숫자를 k진수로 바꿨을 때, 변환된 수 안에 아래 조건에 맞는 소수(Prime number)가 몇 개인지 알아보려 합니다. 0P0처럼 소수 양쪽에 0이 있는 경우 P0처럼 소 programmers.co.kr /** 1. n 숫자 k진수로 변환 1-1) n %k = 나머지를 놔두고, /10씩해서 구하기 2. 변환된 숫자를 조건에 따라 분할 2-1) String k진수를 0을 만날때마다 분할 3. 해당 조건의 숫자가 소수인지 확인 4. 맞으면 개수 추가 **/ import java.util.*; import java... 2022. 1. 30.
[알고리즘 문제풀이] 프로그래머스 - 신고 결과 받기 / JAVA https://programmers.co.kr/learn/courses/30/lessons/92334 코딩테스트 연습 - 신고 결과 받기 문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 programmers.co.kr /** 1. 유저 리스트, 신고 리스트, k번 신고 유저 정지 1-1) 유저 최대 1000, 신고 리스트 최대 200,000 2. 신고 내역을 기준으로 몇번 신고했는지 체크 2-1) 인트배열로 각 이름별 신고 체크 2-2) 한명이 동일사람에게 여러번 체크해도 1회 체크해야하므로, 신고했었다면 다음번은 무시처리하게 2차원 배열로 신고여부 확인 2-3) 이름.. 2022. 1. 30.
[알고리즘 문제풀이] 백준 1065 한수 / JAVA https://www.acmicpc.net/problem/1065 1065번: 한수 어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 www.acmicpc.net import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLi.. 2022. 1. 30.
[알고리즘 문제풀이] 백준 4673 셀프 넘버 /JAVA https://www.acmicpc.net/problem/4673 4673번: 셀프 넘버 셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때, www.acmicpc.net import java.io.*; import java.util.*; public class Main { public static void main(String[] args) { int [] numbers = new int[10001]; int num = 1; while(num 0){ sum += num2 % 10; num2 /= 10; } if (.. 2022. 1. 30.
[알고리즘 문제풀이] 백준 2798 블랙잭 /JAVA https://www.acmicpc.net/problem/2798 2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net import java.util.*; import java.io.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokeniz.. 2022. 1. 30.
[알고리즘 문제풀이] 백준 2309 일곱 난쟁이 /JAVA https://www.acmicpc.net/problem/2309 2309번: 일곱 난쟁이 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. www.acmicpc.net /* 9개 중에 2개를 선택하여 그 두개를 전체합계에서 뺄 때 100일 시 출력 */ import java.util.*; import java.io.*; public class Main { public static int[] arr,choice; public static void main(String[] args) throws IOException{ arr = new int[9]; choice = new .. 2022. 1. 30.
[알고리즘 개념] 브루트 포스(Brute Force) /Java 코드 브루트포스 알고리즘이란 완전탐색 알고리즘. 모든 경우의 수를 탐색해보는 알고리즘. Brute:짐승,동물 Force: 힘 . 즉 난폭한 힘 이런 뜻인데, 모든 경우의 수를 완전 탐색으로 구하는 알고리즘이다. 브루트포스 알고리즘의 방법으론, for문을 이용한 탐색, 백트래킹(재귀)을 이용한 탐색, DFS&BFS 탐색 등이 있다. (재귀와 DFS,BFS는 추후에 설명) 컴퓨터는 약 1초에 1억번(10^8)의 연산이 가능하다고 알려져있는데, 브루트포스는 전체 탐색하기때문에 좋은 알고리즘 방식이 아니다. (600억을 확인한다면... 600초 = 확인하는데만 10분...) 그래서 실제 알고리즘을 풀땐, 이 문제가 브루트포스로 가능한지 확인 후 불가능하다면 어떤 알고리즘을 적용해서 시간복잡도를 줄일지 확인해야한다.(.. 2022. 1. 30.