본문 바로가기

백준30

[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] 11399. ATM (Java) cf> [BOJ] 11399. ATM (Python3) 풀이: ming-jee.tistory.com/138 [BOJ] 11399. ATM (Python3) www.acmicpc.net/problem/11399 (level: Silver III) 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000).. ming-jee.tistory.com ▲ 최근에 Python3으로 풀었던 그리디 문제를 자바로 다시 풀어보았다. (마지막 문제!!) 이번에도 파이썬으로 짰던 로직을 그대로 자바로 바꾸기만 했다. 이번 문제의 핵심은 입력 받은 배열을 오름차순으로 정렬한 뒤에, 차례대로 곱셈 처리.. 2021. 5. 2.
[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] 11399. ATM (Python3) www.acmicpc.net/problem/11399 (level: Silver III) 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net 자신감을 얻고, 다른 그리디 문제도 한 번 풀어보기 위해 목록을 좀 훑어보다가 비슷한 레벨의 문제에 한 번 도전해보았다. 이 문제는 어떻게 보면 운영체제에서 배우는 스케줄링과도 유사한 느낌이었다.🤔 아무튼 요지는 사람이 N명 있고, 각각 인출하는 데 걸리는 시간이 주어지는데 (이것도 당연히 N개) 이때 시간이 가장 적게 걸리는 경우, 그 시간이 얼마나 되는지 구해봐라- 뭐 이런 문제였다. 핵심은 1. 입력.. 2021. 4. 23.
[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 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) www.acmicpc.net 최근 그리디를 공부하고 있는데, 짝꿍이 가장 기본이 되는 문제를 보내줘서 풀어보았다. 내가 보고 있는 책에도 이 문제처럼 거스름돈 관련한 문제가 예제로 나와있었는데, 이런 거스름돈 문제가 꼭 그리디라는 것은 아니고 큰 단위가 항상 작은 단위의 배수일 때, 즉, 작은 단위의 동전들을 조합해 다른 해가 나올 수 없을 .. 2021. 4. 23.
[BOJ] 11721. 열 개씩 끊어 출력하기 (Python3) www.acmicpc.net/problem/11721 (level: Bronze II) 11721번: 열 개씩 끊어 출력하기 첫째 줄에 단어가 주어진다. 단어는 알파벳 소문자와 대문자로만 이루어져 있으며, 길이는 100을 넘지 않는다. 길이가 0인 단어는 주어지지 않는다. www.acmicpc.net 진짜 오랜만에 알고리즘 문제를 풀어봤다. (서로가 서로에게 희망이 되어주기 위해서^_^) 올해 초에 갤탭을 구입했으므로 앞으로는 갤탭을 잘 활용해볼 예정이다. 간단한 문제지만 이런 문제들부터 논리적으로 생각하는 연습을 하는게 중요하다고 생각해서 제대로 단계를 나눠서 틀을 짜봤다. tmi :) index 쪽에 빨간색으로 덧씌워서 적은 메모는 처음엔 i=1, i=2로 적었다가 문제를 풀고난 후 i=0부터라는 것.. 2021. 4. 20.
[BOJ] 3052. 나머지 (Python3) 문제 링크 / level: Bronze II www.acmicpc.net/problem/3052 3052번: 나머지 39, 40, 41, 42, 43, 44, 82, 83, 84, 85를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1이다. 서로 다른 값은 모두 6개가 있다. www.acmicpc.net 배열에 관한 문제인데, 여러 가지를 연습해볼 수 있을 것 같아서 도전해봤다. 문제를 풀어본 결과 몇 가지 공부포인트가 있었다. 1. 배열을 선언하고, 길이를 지정하고, 10개의 데이터를 받는 과정 2. 나머지 연산 (이건 Java에서의 연산과 같다.) nums = [0] * 10 for i in range(10): nums[i] = int(input()) % 42 내가 .. 2020. 9. 4.