[백준] 11653번 자바 문제풀이
2022. 5. 25. 20:43
문제풀이/백준
소인수분해! 수학적으로 소인수분해를 할때는 루트를 사용하여 문제를 푸시면 더욱더 쉽게 풀수있습니다 . Math.sqrt(값) 루트를 씌우는 함수? 입니다. import java.util.Scanner; public class Main{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); for(int i=2; i
알고리즘 - 에라토스테네츠의 체 : 소수와 수인수분해
2022. 5. 25. 20:38
문제풀이/백준
백준 문제를 푸는 도중에 에라토스테네스의 체 라는 효율적인 알고리즘을 공유해보고자 이글을 적습니다. 소수는 약수가 자기 자신과 1만 있는 숫자를 말하는데, 단순 반복문으로도 구할수 있습니다. 작은 수에 대한 소수를 구할때는 반복문으로 구해도 괜찮지만 숫자들이 커지면 반복문으로 판별하는것은 시간낭비입니다. 이때 알고리즘 '에라토스테네스의 체 '를 사용합니다. 더보기 에라토스테네스의 체 : - 체처럼 걸러낸다고 하여 붙여진 알고리즘은 2이상 n이하의 정수 x가 소수인지 아닌지를 효율적으로 판단할 수 있도록 추가적인 배열을 만드는 전처리 알고리즘 입니다. 배열 array[x] =0 이면 소수이고 1이면 소수가 아니다라고 정의할수 있습니다. 초기의 모든 값은 0으로 되어있습니다. 2부터 차례대로 정수를 살펴 볼..
백준 자바 1152번 문제풀이
2022. 4. 26. 00:06
문제풀이/백준
이 문제는 이전에도 언급했던 next와 nextline을 잘 구분하고 활용해야합니다. 안녕하세요! 오늘은 백준 단어의 개수 문제를 풀어보도록하겠습니다. 브론즈2에 해당하는 쉬운 문제입니다. (nextLine은 공백까지 문자열로 받기때문에 next가 아닌nextline을 써주어야합니다) 제가 푼 문제는 자바 8이 아닌 11버전으로 체출을 해야 정답 처리가 됩니다. import java.util.Scanner; public class Main{ public static void main(stringp[ args) { Scanner sc= new Scanner(System.in); String s = sc.nextLine(); int count = 0; //문제에도 나와있지만 단어의 개수를 확인할 변수를 담을..
1157번 백준 자바 문제 풀이
2022. 4. 19. 22:46
문제풀이/백준
안녕하세요 요즘 국비학원에서 프로젝트를 진행하는중에 너무 정신이 없어서 업로드를 못하고있었습니다. 조만간 문제풀이 외에도 프로젝트 진행하면서 쓰이는 코드들 또한 정리해서 올려보겠습니다. 1157번 문제 또한 아스킷 코드를 사용해서 풀수 있는 문제입니다. 예제 입력2 번을 보게 되시면 zZa 입력을 했는데 출력은 Z로 나오게 됩니다. 문제에서 보시면 알겠지만 대소문자를 구별하지 않습니다. 여기에서 힌트를 얻으실수 있을거라고 판단됩니다. import java.util.Scanner; public class solution1157 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int[] arr = new int[2..
백준 2675번 문자열 문제
2022. 4. 4. 19:21
문제풀이/백준
오늘은 백준 2675 문자열 반복 풀기입니다. 저는 2가지 방법으로 풀어보겠습니다. Scanner를 통해 문제를 풀어볼건데 for문을 사용하는방법과 아닌 방법 두가지를 설명드리겠습니다. 일단 밑에 나와있는것처럼 저는 문자열을 repeat을 사용해서 값을 만들어봤습니다. java 8 에는 없지만 java11부터 사용한다는 "repeat" 입니다. Java에서 단일 문자열을 정렬하는 방법을 보여줍니다. 사용되는 가장 일반적인 순서는 알파벳 순서입니다. 정렬은 데이터를 표준 형식으로 변환하고 사람이 읽을 수있는 형식을 만드는 프로세스입니다. Arrays.sort()방법으로 문자를 정렬하기 이전에 repeat을 사용하여서 문자열을 반복시켜줍니다. 문자열 클래스에는 정렬 방법이 없습니다. 문자열을 정렬할때 주된 ..
백준 4344 평균은 넘겠지?
2022. 3. 17. 19:08
문제풀이/백준
예제 입력을 보면 5번 돌아 가게 되어있습니다. 먼저 입력값을 정할수 있게 스캐너를 받습니다. int[]a 라는 배열에 스캐너객체를 넣어줍니다. 중첩반복문을 이용하여서 평균값을 구한후 c배열의 값들을 비교를 합니다. 비교하여서 평균값보다 낮으면 count++로 추가해줍니다. for문을 다 돌린후에 count값과 c배열의 길이의 수를 나누어 줍니다. 나눌때 값은 double형으로 변환시켜주는것이 좋습니다. 그리고 printf는 스트링을 받지 않기때문에 "%.3f%%\n을 선언하여줍니다." 그러면 평균보다 낮은사람의 퍼센트를 구할수 있습니다.
8958번 백준 자바 문제 풀이
2022. 3. 14. 19:52
문제풀이/백준
안녕하세요 오늘은 백준 문제풀이 8958번 풀어보도록하겠습니다. 어려운 문제가 아니니깐 다들 잘해냈을거라 생각합니다.(저는....... 멍청댕청해서 오래걸렸습니다....쿨럭..;;) 가장 먼저 스캐너로 배열에 각각 원소에 문자열을 저장해줍니다! 그리고 count는 몇번 연속했는지 값을 저장해줄겁니다. sum 은 누적 합산 값을 나타내는 변수로 선언해 줍니다. for문에 문자열을 String에 길이만큼 반복할때 문자열을 split으로 하나하나 쪼개어 주었습니다 그 후 해당 원소의 문자열을 charAt이 아닌 문자열의 같은값(검사)을 구해주는 eqauls.로 O값을 구하였습니다. O가 나오면 count변수에 1씩 증가 시키고 X가 나올경우 count를 0으로 초기화 시켜주었습니다(저는 초기화시키는방법을 몰라..
백준 1546번 자바
2022. 3. 9. 21:00
문제풀이/백준
1차원 배열에 관련된 문제입니다. 잘 생각하시면 어렵지 않은 문제입니다. 제일 기본적인 방법으로 풀어보도록 하겠습니다. 먼저 배열의 모든 원소를 입력받아 저장하고 arrays.sort() 로 정렬합니다(오름차순 순으로 정렬이 됩니다.) 그렇다면 배열의 마지막길이는 배열에 가장 큰 값이라는것을 알수있습니다. 또한 주의해야할 점은 연산할때 반드시 초소한자료형1개이상은 double형으로 써야합니다. 그러면 자동형변환이 되면서 자료형이 큰 쪽으로 (int에서 double)변환이 되기 때문입니다. 여기서는 sum을 double형으로 해주었습니다. Scanner sc = new SCanner(System.in); int a = sc.nextInt(); double num[] = new double[a];//배열의 ..
백준 10818 최대 최소 값 구하기
2022. 1. 28. 00:54
문제풀이/백준
https://www.acmicpc.net/problem/10818 10818번: 최소, 최대 첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다. www.acmicpc.net 문제가 기초적이면서도 초보자들에겐 버벅거릴수 있는 문제입니다. 배열을 사용할때 배열값은 Scanner받아서 지정해주면되는데 배열안에 숫자는 어떻게 넣을까? import java.util.Scanner; public class Main11 { public static void main(String[] args) { Scanner sc=new Scanner(Syst..
백준 2884 번 자바 문제 풀이- 알람 시계
2022. 1. 27. 17:44
문제풀이/백준
https://www.acmicpc.net/problem/2884 2884번: 알람 시계 상근이는 매일 아침 알람을 듣고 일어난다. 알람을 듣고 바로 일어나면 다행이겠지만, 항상 조금만 더 자려는 마음 때문에 매일 학교를 지각하고 있다. 상근이는 모든 방법을 동원해보았지만, www.acmicpc.net 문제에서 요구한것은 원래 시간보다 45분 앞선시간을 원합니다. 그렇다면 입력받은 값(분)을 기준으로 45분 작으면 H(시간)에 -1을 해주고 45분 보다 크다면 -45를 해줍니다. 여기서 문제점은 분(M)이 45분 보다 작을경우 H에 -1을 해줬는데 여기서 값이 0보다 작은수가 나올수 있으므로 H를 23으로 수정해주어야 합니다. M(분)은 60분이기 떄문에 입력값이 45보다 작아 H에서 -1을 해줄 떄 M..