본문 바로가기

java20

[BOJ] 10808. 알파벳 개수 (Java) www.acmicpc.net/problem/10808 (level: Bronze II) 10808번: 알파벳 개수 단어에 포함되어 있는 a의 개수, b의 개수, …, z의 개수를 공백으로 구분해서 출력한다. www.acmicpc.net 그동안 파이썬으로 꼼지락 대느라 자바에 대한 문법이나 감각이 좀 떨어져있는 것 같아서 쉬어가는 겸 가볍게 하나 풀어봤다. 1차원 배열과 아스키코드, charAt 메소드를 적절하게 사용해볼 수 있는 문제였다. 문제는 매우 간단하기 때문에 특별한 것은 없었고, 핵심은 아스키코드를 활용하는 것! import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; /* @date: .. 2021. 5. 5.
[BOJ] 2839. 설탕 배달 (Java) www.acmicpc.net/problem/2839 (level: Bronze I) 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net 작년에 단순하게 접근했다가 런타임 에러 난 이후로 그냥 방치해뒀었는데, 새로운 마음으로 다시 풀어보았다. 분류는 그리디로 되어있는데 나는 수학적으로 접근해서(나머지를 이용해 규칙을 찾아냄,,😂) 결국 성공하긴 했다. 그리디로 푸는 방법은 잘 생각이 안 난다. 아니, 그전에 일단 3과 5라는 숫자를 이용하려면 서로 배수관계가 아니기 때문에 이전에 풀었던 동전이나 거스름돈 문제들처럼 가장 큰 .. 2021. 5. 5.
[BOJ] 11721. 열 개씩 끊어 출력하기 (Java) cf> [BOJ] 11721. 열 개씩 끊어 출력하기 (Python3) 풀이: ming-jee.tistory.com/135 [BOJ] 11721. 열 개씩 끊어 출력하기 (Python3) www.acmicpc.net/problem/11721 (level: Bronze II) 11721번: 열 개씩 끊어 출력하기 첫째 줄에 단어가 주어진다. 단어는 알파벳 소문자와 대문자로만 이루어져 있으며, 길이는 100을 넘지 않는다. 길이가 0인 단. ming-jee.tistory.com ▲ 최근에 Python3으로 풀었던 그리디 문제를 자바로 다시 풀어보았다. (2번째 문제!!) 이번에도 특이사항은 없고, 저번에 파이썬으로 짠 코드를 자바로 바꾸는 과정을 거쳤다. 이번 문제는 String을 받아서 처리해주는건데 st.. 2021. 5. 2.
[BOJ] 11047. 동전 0 (Java) cf> [BOJ] 11047. 동전 0 (Python3) 풀이: ming-jee.tistory.com/137 [BOJ] 11047. 동전 0 (Python3) www.acmicpc.net/problem/11047 (level: Silver II) 11047번: 동전 0 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1.. ming-jee.tistory.com ▲ 최근에 Python3으로 풀었던 그리디 문제를 자바로 다시 풀어보았다. 작년 말부터 올해 초까지는 쭉 쉬었고, 또 최근에도 쉬엄쉬엄 지내면서 고민 많이 했는데 내가 하고 싶은 분야는 DB이기 때문에 신입으로 뽑는 곳이 적어서 백엔드.. 2021. 5. 2.
[BOJ] 2740. 행렬 곱셈 (Java) 문제 링크 / level: Bronze I https://www.acmicpc.net/problem/2740 2740번: 행렬 곱셈 첫째 줄에 행렬 A의 크기 N 과 M이 주어진다. 둘째 줄부터 N개의 줄에 행렬 A의 원소 M개가 순서대로 주어진다. 그 다음 줄에는 행렬 B의 크기 M과 K가 주어진다. 이어서 M개의 줄에 행렬 B의 원소 K개 www.acmicpc.net 내가 생각한 풀이 고등학교, 대학교 때 많이 계산했던 행렬의 곱셈 연산에 관한 문제였다. 그런데 간단한 규칙에 비해 코드로 구현하는데 생각보다 어려움이 좀 있었다.🤔💦 일단 행렬의 곱셈을 위한 조건을 알아보자. 첫 번째 행렬(first)의 크기: N * M 두 번째 행렬(second)의 크기: M * K 1. 이 중 M의 값이 반드시 같.. 2020. 5. 28.
[BOJ] 10093. 숫자 (Java) 문제 링크 / level: Bronze II https://www.acmicpc.net/problem/10093 10093번: 숫자 문제 두 양의 정수가 주어졌을 때, 두 수 사이에 있는 정수를 모두 출력하는 프로그램을 작성하시오. 입력 두 정수 A와 B가 주어진다. (1 ≤ A, B ≤ 1015, A와 B의 차이는 최대 100,000) 출력 첫째 줄에 � www.acmicpc.net 내가 생각한 풀이 간밤에 짝꿍이랑 연습 겸 대결을 하면서 풀어본 문제. 난이도도 브론즈인데다가 문제가 너무 심플해서 5분컷 할 줄 알고 건드렸다가 런타임 에러에... 틀렸습니다에.. 아주 난리를 친 문제였다. 자세히 보면 정답 비율이 약 24%밖에 되지 않는 오묘한 문제다. 문제의 핵심은 1. 입력값의 범위를 잘 살펴야한다.. 2020. 5. 24.
[BOJ] 1110. 더하기 사이클 (Java) 문제 링크 / level: Bronze I https://www.acmicpc.net/problem/1110 1110번: 더하기 사이클 0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, www.acmicpc.net 내가 생각한 풀이 간단한 문제인데 자릿수 이야기가 있어서 문자열로 할까 숫자로 할까 고민하다가 브론즈 문제라서 그냥 간단하게 숫자로 풀었다. 자릿수는 나눗셈과 모듈러 연산으로 처리해줌. 몇 가지 포인트는, 1. 연산하려는 숫자가 한 자릿수일 때와 두 자릿수일 때로 나눠서 처리하는 것 2. 덧셈 연산 한 번 할 때마다 카운트(cnt)도 하나씩.. 2020. 5. 23.
[BOJ] 14681. 사분면 고르기 (Java) 문제 링크 / level: Bronze IV https://www.acmicpc.net/problem/14681 14681번: 사분면 고르기 문제 흔한 수학 문제 중 하나는 주어진 점이 어느 사분면에 속하는지 알아내는 것이다. 사분면은 아래 그림처럼 1부터 4까지 번호를 갖는다. "Quadrant n"은 "제n사분면"이라는 뜻이다. 예를 들어, 좌 www.acmicpc.net 내가 생각한 풀이 x좌표와 y좌표를 입력받은 뒤 두 좌표의 값을 곱한다. 곱해서 양수가 나온다면 (+,+) 또는 (-,-) 조합이니까 x좌표의 값만 검사해서 양수면 1사분면, 음수면 3사분면으로 처리. 곱해서 음수가 나온다면 (-,+) 또는 (+,-) 조합이니까 이번에도 x좌표의 값만 검사해서 음수면 2사분면, 양수면 4사분면으로 .. 2020. 5. 23.
[BOJ] 1205. 등수 구하기 (Java) 문제 링크 / level: Silver IV https://www.acmicpc.net/problem/1205 1205번: 등수 구하기 첫째 줄에 N, 송유진의 새로운 점수, 그리고 P가 주어진다. P는 10보다 크거나 같고, 50보다 작거나 같은 정수, N은 0보다 크거나 같고, P보다 작거나 같은 정수이다. 그리고 모든 점수는 2,000,000,000�� www.acmicpc.net 내가 생각한 풀이 기분전환 좀 할 겸 대학생 기본반 문제집에 있는 것 중에 어렵지 않은걸로 하나 골라서 풀어봤다. 오늘은 거두절미하고 바로 시작! 이 문제가 만약 입력받을 때 들어오는 점수가 내림차순이 아니라 무작위였다면 조금 더 귀찮았을 것이고, 새로 삽입해야 하는 점수가 송유진의 새로운 점수 1개만이 아니라 여러 개였.. 2020. 5. 22.