구현 251

[Java] 백준 풀기 2438 - 별 찍기 1

자바 백준 2438번 브론즈 5 https://www.acmicpc.net/problem/2438 2438번: 별 찍기 - 1 첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제 www.acmicpc.net 문제 보기 분류: 구현 문제 풀기 재귀 함수를 구현하여 별 찍기를 해결해 본다. 순차적으로 늘어나는 별의 개수를 위해 초기 값 int count = 0 과 String star = "" 을 지정하였다. 재귀 함수에 진입할 때마다 count 는 하나씩 늘어나고 별 문자도 하나씩 늘어난다. 함수 .repeat() 을 이용하였으면 더 좋았을 것 같은 생각이 든다. (여담으로 SW Expert Academy 에서는 .repeat() 사용이 불가능했다.) 주어진 숫자와 count..

공부하기/백준 2023.01.24

[Java] 백준 풀기 10817 - 세 수

자바 백준 10817번 브론즈 3 https://www.acmicpc.net/problem/10817 10817번: 세 수 첫째 줄에 세 정수 A, B, C가 공백으로 구분되어 주어진다. (1 ≤ A, B, C ≤ 100) www.acmicpc.net 문제 보기 분류: 구현, 정렬 문제 풀기 정렬을 구현하지 않고 Collections.sort() 를 이용해 본다. Collections.sort(numList, Collections.reverseOrder()); 내림차순 정렬을 사용하기 위해 reverseOrder() 또한 입력되었다. numList.get(1) 두 번째로 큰 수를 찾기 위해 내림차순 되어있는 ArrayList 에서 두 번째에 해당하는 index 1 의 값을 .get(1) 로 불러온다. 코..

공부하기/백준 2023.01.23

[Java] 백준 풀기 4673 - 셀프 넘버

자바 백준 4673번 실버 5 https://www.acmicpc.net/problem/4673 4673번: 셀프 넘버 셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때, www.acmicpc.net 문제 보기 분류: 수학, 구현, 브루트포스 알고리즘 문제 풀기 셀프 넘버인지 아닌지를 판단하기 위해 10_000 개의 배열의 Index 를 활용한다. 자기 자신과 각 자리의 합으로 이루어진 숫자는 셀프 넘버가 아니기때문에 배열에 1 로 표시를 해놓는다. 10_000 까지의 숫자를 모두 돌고 나서 배열에 1 이 아닌 0..

공부하기/백준 2023.01.22

[Java] 백준 풀기 25304 - 영수증

자바 백준 25304번 브론즈 5 https://www.acmicpc.net/problem/25304 25304번: 영수증 준원이는 저번 주에 살면서 처음으로 코스트코를 가 봤다. 정말 멋졌다. 그런데, 몇 개 담지도 않았는데 수상하게 높은 금액이 나오는 것이다! 준원이는 영수증을 보면서 정확하게 계산된 것 www.acmicpc.net 문제 보기 분류: 수학, 구현, 사칙연산 문제 풀기 영수증에 적힌 금액과 구입한 물건의 종류를 차례로 입력받는다. 구입한 물건의 종류만큼 for loop 을 실행하면서 각 물건의 가격과 개수를 입력받는다. 금액과 개수를 곱하여 합산 금액을 누적해 나간다. 영수증에 찍힌 총 그액과 물건의 가격과 개수로 계산된 금액이 서로 일치하는지 판단한다. 코드 보기 // package ..

공부하기/백준 2023.01.20

[Java] 백준 풀기 17478 - 재귀함수가 뭔가요?

자바 백준 17478번 실버 5 https://www.acmicpc.net/problem/17478 17478번: 재귀함수가 뭔가요? 평소에 질문을 잘 받아주기로 유명한 중앙대학교의 JH 교수님은 학생들로부터 재귀함수가 무엇인지에 대하여 많은 질문을 받아왔다. 매번 질문을 잘 받아주셨던 JH 교수님이지만 그는 중앙대 www.acmicpc.net 문제 보기 분류: 구현, 재귀 문제 풀기 base case 및 recursive case 조건을 인지하여 구현한다. base case 는 재귀함수가 끝나는 지점이며, return 을 하여 이전에 지속적으로 누적된 함수들을 되짚어 돌아간다. 재귀함수와 관련없는 첫 줄 어느 한 컴퓨터공학과 학생이 유명한 교수님을 찾아가 물었다. 를 시작으로.. recursive ca..

공부하기/백준 2023.01.16

[Java] 백준 풀기 2742 - 기찍 N

자바 백준 2742번 브론즈 4 https://www.acmicpc.net/problem/2742 2742번: 기찍 N 자연수 N이 주어졌을 때, N부터 1까지 한 줄에 하나씩 출력하는 프로그램을 작성하시오. www.acmicpc.net 문제 보기 분류: 구현 문제 풀기 자바 연습. Scanner() 를 통해 입력을 받는다. 입력받은 n 만큼 for loop 을 돌리면서 1 씩 줄여가며 1 까지 출력을 한다. 코드 보기 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 = n;..

공부하기/백준 2023.01.15

[Python] 백준 풀기 5622 - 다이얼

파이썬 백준 5622번 브론즈 2 https://www.acmicpc.net/problem/5622 5622번: 다이얼 첫째 줄에 알파벳 대문자로 이루어진 단어가 주어진다. 단어의 길이는 2보다 크거나 같고, 15보다 작거나 같다. www.acmicpc.net 문제 보기 분류: 구현 문제 풀기 문자열을 입력받아 하나씩 순차적으로 하나씩 빼낸다. 동일한 알파벳에 대해 조건을 주고 걸리는 시간을 누적해 더한다. 코드 보기 import sys inputdata = sys.stdin.readline def fnMakeACall(text): total_sec = 0 for t in text: if t == 'A' or t == 'B' or t == 'C': total_sec += 3 elif t == 'D' or..

공부하기/백준 2023.01.14

[Java] 백준 풀기 2744 - 대소문자 바꾸기

자바 백준 2744번 브론즈 5 https://www.acmicpc.net/problem/2744 2744번: 대소문자 바꾸기 영어 소문자와 대문자로 이루어진 단어를 입력받은 뒤, 대문자는 소문자로, 소문자는 대문자로 바꾸어 출력하는 프로그램을 작성하시오. www.acmicpc.net 문제 보기 분류: 구현, 문자열 문제 풀기 자바를 연습하다. toCharArray() 로 주어진 문자들을 리스트에 char 타입으로 입력받는다. char 타입은 ASCII 코드의 10 진수인 정수로 저장이 되기 때문에 크기 비교를 통해 조건을 준다. (대문자 Z 90 보다 작거나, 소문자 a 97 보다 크거나) 대문자와 소문자는 ASCII 코드 10 진수에서 32 만큼 차이가 있기 때문에 이를 이용하여 연산을하여 대문자 -..

공부하기/백준 2023.01.13

[Java] 백준 풀기 2738 - 행렬 덧셈

자바 백준 2738번 브론즈 5 https://www.acmicpc.net/problem/2738 2738번: 행렬 덧셈 첫째 줄에 행렬의 크기 N 과 M이 주어진다. 둘째 줄부터 N개의 줄에 행렬 A의 원소 M개가 차례대로 주어진다. 이어서 N개의 줄에 행렬 B의 원소 M개가 차례대로 주어진다. N과 M은 100보다 작거나 같 www.acmicpc.net 문제 보기 분류: 수학, 구현 문제 풀기 자바 연습을 위해 온라인 컴파일러로 하나하나 출력해 보며 풀어본다. Scanner 를 준비하여 nextInt() 로 n 과 m 을 입력받는다. 2차원 배열 a_array, b_array 그리고 result_array 를 생성하고 이중 for loop 을 통해 각각의 array 에 값을 저장한다. 두 array ..

공부하기/백준 2023.01.12

[Python] 백준 풀기 2747 - 피보나치 수

파이썬 백준 2747번 브론즈 2 https://www.acmicpc.net/problem/2747 2747번: 피보나치 수 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 www.acmicpc.net 문제 보기 분류: 수학, 구현 문제 풀기 초기값인 0 번째는 0, 1 번째는 1 을 저장한 뒤, 피보나치 수의 합의 식을 따르는 Fn = Fn-1 + Fn-2 (n ≥ 2) 를 적용하여 구하고자 하는 피보나치 수까지 계산하면 리스트에 저장하고 마지막 index 값을 출력한다. 코드 보기 import sys inputdata = sy..

공부하기/백준 2023.01.11