자바 35

백준 2448번 별찍기 11 - 자바(Java)

문제 링크https://www.acmicpc.net/problem/2448 1. 문제2. 문제 관찰 과정 및 풀이2-1. 문제 관찰 과정아주 불친절한 문제였다. 먼저 주어지는 N은 높이가 된다는 것을 알 수 있었다.또한 넓이는 N의 두배에서 -1을 한 값이 었다. (공백 포함) char 2차원 배열을 만들어서 풀게 되었는데 따라서 배열은 [n][n * 2 -1 ]의 배열이었다. 문제의 예시그림과 같이 3가지 파트로 나누어 그림을 생각하였다.좌표를 생각하는 과정에서 가로가 홀수이다 보니 중간점을 기준으로 생각하는 것이 많이 헷갈렸다. 또한 이전의 별찍기 10과다르게 먼저 채우지 않고 처리하여 조금더 빠르게 해보려 하였다.2-2. 문제 풀이만약 높이가 3이된다면 제일 작은 중간이 비어있는 삼각형을 해당좌표에..

알고리즘/백준 2024.07.09

백준 2447번 별찍기 10 - 자바(Java)

문제 링크https://www.acmicpc.net/problem/2447 1. 문제문제재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다.크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이 하나씩 있는 패턴이다.**** ****N이 3보다 클 경우, 크기 N의 패턴은 공백으로 채워진 가운데의 (N/3)×(N/3) 정사각형을 크기 N/3의 패턴으로 둘러싼 형태이다. 예를 들어 크기 27의 패턴은 예제 출력 1과 같다.입력첫째 줄에 N이 주어진다. N은 3의 거듭제곱이다. 즉 어떤 정수 k에 대해 N=3k이며, 이때 1 ≤ k 출력첫째 줄부터 N번째 줄까지 별을 출력한다.2. 문제 관찰 과정 및 풀..

알고리즘/백준 2024.07.09

JAVA JVM Memory 정리

우선 JVM이란 자바를 실행시키기 위한 가상 컴퓨팅 환경이다.이전에 배울때에는 OS역할을 한다고 해서 OS위에 JVM이 하나 더올라가는 것으로 이해했었다. 하지만 이번에 JVM을 공부하면서 알게 된것은자바 어플리케이션을 실행하게 되면 JVM이 하나의 프로세스로 돌아가게 되고GC나 여러 기능들이 스레드로 동작하게 된다. 우선 우리가 JAVA 소스코드를 작성하고 javac와 같이 자바 컴파일러로 컴파일하게 되면 class파일이 생성된다.이 class파일을 JVM이 Class Loader를 통해 클래스 파일을 읽어 들인다. 이 클래스 파일안에 어떤 필드가 몇개고, 메소드가 몇개인지 바이트코드 까지 포함하여 클래스에 대한 모든 정보가 들어있다. 이 클래스 파 일 정보를 Method Area에 올려 검증하고 st..

Java 2024.07.08

백준 11328번 Strfry -자바(Java)

https://www.acmicpc.net/problem/11328 문제C 언어 프로그래밍에서 문자열(string)은 native한 자료형이 아니다. 사실, 문자열은 그저, 문자열의 끝을 표시하기 위한 말단의 NULL이 사용된, 문자들로 이루어진 문자열일 뿐이다. 하지만 프로그래밍 언어에서 문자열을 다루는 것은 매우 중요하기 때문에, C 표준 라이브러리는 문자열을 다루는 데에 매우 유용한 함수들을 제공하고 있다 : 그들 중에는 strcpy, strcmp, strtol, strtok, strlen, strcat 가 있다.하지만, 잘 알려져 있지 않으며, 잘 사용되지도 않는 함수가 하나 있다 : strfry 함수다. strfry 함수는 입력된 문자열을 무작위로 재배열하여 새로운 문자열을 만들어낸다. (역자 ..

알고리즘/백준 2024.06.05

백준 2577번 숫자의 개수 - 자바(Java)

https://www.acmicpc.net/problem/2577 문제세 개의 자연수 A, B, C가 주어질 때 A × B × C를 계산한 결과에 0부터 9까지 각각의 숫자가 몇 번씩 쓰였는지를 구하는 프로그램을 작성하시오.예를 들어 A = 150, B = 266, C = 427 이라면 A × B × C = 150 × 266 × 427 = 17037300 이 되고, 계산한 결과 17037300 에는 0이 3번, 1이 1번, 3이 2번, 7이 2번 쓰였다.입력첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다. A, B, C는 모두 100보다 크거나 같고, 1,000보다 작은 자연수이다.출력첫째 줄에는 A × B × C의 결과에 0 이 몇 번 쓰였는지 출력한다. 마찬가지로 둘째 줄부터 열 번째 줄까지..

알고리즘/백준 2024.06.05

백준 10808번 알파벳 갯수 - 자바 (Java)

https://www.acmicpc.net/problem/10808 문제알파벳 소문자로만 이루어진 단어 S가 주어진다. 각 알파벳이 단어에 몇 개가 포함되어 있는지 구하는 프로그램을 작성하시오.입력첫째 줄에 단어 S가 주어진다. 단어의 길이는 100을 넘지 않으며, 알파벳 소문자로만 이루어져 있다.출력단어에 포함되어 있는 a의 개수, b의 개수, …, z의 개수를 공백으로 구분해서 출력한다.예제 입력 1 복사baekjoon예제 출력 1 복사1 1 0 0 1 0 0 0 0 1 1 0 0 1 2 0 0 0 0 0 0 0 0 0 0 0 배열을 이용하여 해당 알파벳 별로 인덱스를 부여하고 해당 인덱스의 값을 증가시키면서 count하였다. import java.io.*;public class Main { ..

알고리즘/백준 2024.06.05

백준 3273번 두 수의 합 -자바(Java)

https://www.acmicpc.net/problem/3273 문제n개의 서로 다른 양의 정수 a1, a2, ..., an으로 이루어진 수열이 있다. ai의 값은 1보다 크거나 같고, 1000000보다 작거나 같은 자연수이다. 자연수 x가 주어졌을 때, ai + aj = x (1 ≤ i 입력첫째 줄에 수열의 크기 n이 주어진다. 다음 줄에는 수열에 포함되는 수가 주어진다. 셋째 줄에는 x가 주어진다. (1 ≤ n ≤ 100000, 1 ≤ x ≤ 2000000)출력문제의 조건을 만족하는 쌍의 개수를 출력한다.예제 입력 1 복사95 12 7 10 9 1 2 3 1113예제 출력 1 복사3  투포인터 문제였다. 투포인터를 사용하여 두수를 더해 결과가 주어진 수보다 작다면 start를 증가크다면 end를 감..

알고리즘/백준 2024.06.05

백준 1475 방번호 - 자바(Java)

https://www.acmicpc.net/problem/1475 문제다솜이는 은진이의 옆집에 새로 이사왔다. 다솜이는 자기 방 번호를 예쁜 플라스틱 숫자로 문에 붙이려고 한다.다솜이의 옆집에서는 플라스틱 숫자를 한 세트로 판다. 한 세트에는 0번부터 9번까지 숫자가 하나씩 들어있다. 다솜이의 방 번호가 주어졌을 때, 필요한 세트의 개수의 최솟값을 출력하시오. (6은 9를 뒤집어서 이용할 수 있고, 9는 6을 뒤집어서 이용할 수 있다.)입력첫째 줄에 다솜이의 방 번호 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수이다.출력첫째 줄에 필요한 세트의 개수를 출력한다.예제 입력 1 복사9999예제 출력 1 복사2 예제 입력 2 복사122예제 출력 2 복사2  문제의 핵심은 6과 9를 뒤집어서 사..

알고리즘/백준 2024.06.05

1158번 요세푸스 문제 -자바(Java)

https://www.acmicpc.net/problem/1158 바킹독 연결 리스트 마지막 문제이다.문제요세푸스 문제는 다음과 같다.1번부터 N번까지 N명의 사람이 원을 이루면서 앉아있고, 양의 정수 K(≤ N)가 주어진다. 이제 순서대로 K번째 사람을 제거한다. 한 사람이 제거되면 남은 사람들로 이루어진 원을 따라 이 과정을 계속해 나간다. 이 과정은 N명의 사람이 모두 제거될 때까지 계속된다. 원에서 사람들이 제거되는 순서를 (N, K)-요세푸스 순열이라고 한다. 예를 들어 (7, 3)-요세푸스 순열은 이다.N과 K가 주어지면 (N, K)-요세푸스 순열을 구하는 프로그램을 작성하시오.입력첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000)출력예제와 같이 ..

알고리즘/백준 2024.06.05

백준 5397번 키로거- 자바(Java)

https://www.acmicpc.net/problem/5397 문제창영이는 강산이의 비밀번호를 훔치기 위해서 강산이가 사용하는 컴퓨터에 키로거를 설치했다. 며칠을 기다린 끝에 창영이는 강산이가 비밀번호 창에 입력하는 글자를 얻어냈다.키로거는 사용자가 키보드를 누른 명령을 모두 기록한다. 따라서, 강산이가 비밀번호를 입력할 때, 화살표나 백스페이스를 입력해도 정확한 비밀번호를 알아낼 수 있다. 강산이가 비밀번호 창에서 입력한 키가 주어졌을 때, 강산이의 비밀번호를 알아내는 프로그램을 작성하시오. 강산이는 키보드로 입력한 키는 알파벳 대문자, 소문자, 숫자, 백스페이스, 화살표이다.입력첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한줄로 이루어져 있고, 강산이가 입력한 순서대로 길이가 ..

알고리즘/백준 2024.06.05
반응형