전체 글 142

백준 1157번 - 단어 공부 JAVA

이 문제는 글자 하나하나 떼어서 세는건 저번 알고리즘 문제때 했던 charAt()로 하면 될 것 같은데 알파벳-알파벳의 개수 를 같이 저장시키는걸 어떻게 해야하나에서 고민을 했다. (배열의 자리가 해당 알파벳, 해당 자리의 값을 중복값으로 해결했다) 그리고 .length 로 할 때 빨간줄이 떠서 당황했는데 배열이 아니라 문자의 길이인 경우에는 .length() 를 써야했다. 마지막으로 char형을 쓸 일이 은근 많은 듯 해서 아스키코드를 첫글자정도는 외워둬야 한다는 생각이 들었다. A는 65 a는 97... import java.util.Scanner; public class Main { public static void main(String[] args){ Scanner in = new Scanner(..

Study/알고리즘 2022.07.28

백준 1145번 - 적어도 대부분의 배수 JAVA

처음에 공배수라고 생각해서 엄청 무식한 방법으로 풀었다가 실패하고; 이건 아닌 것 같아서 방법을 찾다가 완전 탐색 방법을 알게 되었다. 완전탐색이란? 가능한 모든 경우의 수를 탐색하고 확인하는 방법이다. 이 방법은 답이 너무 많거나 범위가 너무 넓으면 어렵지만 이번에는 숫자가 5개밖에 주어지지 않기 때문에 사용할 수 있다. import java.util.Scanner; public class Main { public static void main(String[] args){ Scanner in = new Scanner(System.in); int num[] = new int[5]; for(int i=0; i

Study/알고리즘 2022.07.27

백준 1110번 - 더하기 사이클 JAVA

쉬운 문제였는데 6+8 = 14 이후 1을 버리는 부분을 못보고 넘어가서 고전했다; 입력받는 수는 N, 십의 자릿수와 1의 자릿수를 a,b 사이클을 돌려서 새로 만들어진 수는 newN으로 설정한다. newN의 초기값은 N이고, (b * 10) + (a + b) % 10 한 값을 새로 저장한 뒤 while문을 N과 같아질 때까지 돌리면 되겠다. import java.util.Scanner; public class Main { public static void main(String[] args){ Scanner in = new Scanner(System.in); int N = in.nextInt(); int newN = N, cycle = 0, a = 0, b =0; //a = 10의 자리 b=1의 자리 w..

Study/알고리즘 2022.07.27

백준 1075번 - 나누기 JAVA

처음에 문제 내용을 이해하지 못해서 조금 헤맸는데 예제를 보고 이해했다. 100보다 크거나 같은 숫자의 뒷자리를 바꿔서 F로 나눌 때 나머지를 0으로 만드는 수를 출력하면 된다. 다만 가장 작은 숫자를 출력해야 하기 때문에 나머지가 0인 숫자가 한번 출력된 후엔 break를 해줘야 한다. 그리고 N은 우선 10의 자리와 1의 자리를 0으로 초기화한 후에 작은 수부터 올라가야 한다. import java.util.Scanner; public class Main { public static void main(String[] args){ Scanner in = new Scanner(System.in); int N = in.nextInt(); int F = in.nextInt(); N/=100; //N = N/..

Study/알고리즘 2022.07.26

Docker란?

요즘 도커가 핫하다는데.....도커....컨테이너... 애매하게는 들었지만 확실하게는 몰라서 개념을 정리하기로 한다. https://youtu.be/IiNI6XAYtrs 오늘도 테코톡의 도움을 받아봅니다^^~ Docker 컨테이너 기반 가상화 도구 서버 가상화 하나의 물리적 서버 호스트에서 여러 개의 서버 운영 체제를 게스트로 실행할 수 있게 해주는 소프트웨어 아키텍쳐 = 하나의 서버의 자원을 여러 서버들이 할당받아서 성능을 분산시키고, 분산 서버는 다른 서비스를 수행 가능. 각 가상머신에는 여러 운영체제가 설치되어 있고, 하이퍼바이저에 의해 생성되고 관리되는 운영체제를 게스트 운영체제라고 부른다. 하이퍼바이저 OS들에게 자원을 나누어주며 조율한다. OS들의 커널을 번역해서 하드웨어에게 전달한다. 대표적..

백준 1037번 - 약수 JAVA

이 문제를 보니 예전에 자바로 약수구하기 문제를 풀었던게 생각난다. https://dsdsds.tistory.com/10?category=1002335 약수가 뭔지 잊었던..슬픈 추억^_^ 아무튼 문제를 봤는데 이 문제는 예제를 보면 답을 알 수 있을 것 같았다. 예제를 보면 약수 중 가장 작은 수와 가장 큰 수를 곱하면 N이 나온다는 것을 알 수 있다. (예제 3에서 3x12 = 24) 그렇다면 가장 작은 수와 가장 큰 수를 어떻게 구하느냐가 문제인데... Arrays.sort() 를 하면 배열을 오름차순 정렬할 수 있다. 그러면 배열[0] 과 배열[n-1](0번부터 시작하기 때문에 가장 마지막 숫자는 n-1번 방에 있다) 을 곱하면 N이 나올 것이다. import java.util.Arrays; im..

Study/알고리즘 2022.07.25

백준 1100번 - 하얀 칸 JAVA

(0.0)이 나온걸 보면 배열 문제다. for문을 두번 돌리면 될 것 같은데 하얀 칸을 어떻게 구하면 좋을까? 하얀 칸은 (0.0) (0,2) (0.4) .... 두번째 줄은 (1,1) (1,3) (1,5)... 이다. 이 배열들의 공통점은 두 수를 더하면 짝수라서 2로 나누면 나머지가 0이 된다. 첫번째 줄 - 앞의 숫자가 짝수, 뒤의 숫자가 짝수 두번째 줄 - 앞의 숫자가 홀수, 뒤의 숫자도 홀수 .... 인 경우가 흰 칸이다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public ..

Study/알고리즘 2022.07.24