본문 바로가기

반응형

알고리즘

(199)
섹션 1. String(문자열)_4. 단어 뒤집기 문제 N개의 단어가 주어지면 각 단어를 뒤집어 출력하는 프로그램을 작성하세요. 입력 첫 줄에 자연수 N(3 자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비(김태원)강의를 참고하여 작성하였습니다.
섹션 1. String(문자열)_3. 문장 속 단어 문제 한 개의 문장이 주어지면 그 문장 속에서 가장 긴 단어를 출력하는 프로그램을 작성하세요. 문장속의 각 단어는 공백으로 구분됩니다. 입력 첫 줄에 길이가 100을 넘지 않는 한 개의 문장이 주어집니다. 문장은 영어 알파벳으로만 구성되어 있습니다. 출력 첫 줄에 가장 긴 단어를 출력한다. 가장 길이가 긴 단어가 여러개일 경우 문장속에서 가장 앞쪽에 위치한 단어를 답으로 합니다. 입출력 예제 나름 TDD를 해보기 위해 작은 단위로 쪼개면서 sysout으로 확인하며 풀어보았다. 다음과 같이 두 가지 방식으로 풀어보았다. 1. split와 향상된 for 문을 사용한다. 2. indexOf와 substring을 사용한다. 1. split / 향상된 for문 먼저 첫번째 풀이방식이다. Scanner를 사용하여 ..
섹션 1. String(문자열)_2. 대소문자 변환 문제 대문자와 소문자가 같이 존재하는 문자열을 입력받아 대문자는 소문자로 소문자는 대문자로 변환하여 출력하는 프로그램을 작성하세요. 입력 첫 줄에 문자열이 입력된다. 문자열의 길이는 100을 넘지 않습니다. 문자열은 영어 알파벳으로만 구성되어 있습니다. 출력 첫 줄에 대문자는 소문자로, 소문자는 대문자로 변환된 문자열을 출력합니다. 입출력 예제 풀이 과정은 이전 문제와 동일하게 변수와 메소드 선언 > 메소드 구현 > 출력이다. 입력받을 문자열과 실제 작업이 이루어질 메소드를 선언한다. Scanner를 사용하여 입력받는다. 그 후에 생성한 메소드를 실행할 수 있도록 main에 객체를 생성한다. (이 때, 생성한 메소드가 static 이 붙어있다면 객체 생성을 해주지 않아도 된다.) 이제 메소드를 구현해보자..
섹션 1. String(문자열)_1. 문자 찾기 문제 한 개의 문자열을 입력받고, 특정 문자를 입력받아 해당 특정문자가 입력받은 문자열에 몇 개 존재하는지 알아내는 프로그램을 작성하세요. 대소문자를 구분하지 않습니다.문자열의 길이는 100을 넘지 않습니다. 입력 첫 줄에 문자열이 주어지고, 두 번째 줄에 문자가 주어진다. 문자열은 영어 알파벳으로만 구성되어 있습니다. 출력 첫 줄에 해당 문자의 개수를 출력한다. 입출력 예제 강의를 들으면서 풀어보니, 기존에 내가 작업하던 것과 가장 큰 차이점이 바로 '메소드'를 사용한다는 것이었다. 앞으로는 메소드와 TDD를 이용하여 알고리즘을 풀 수 있도록 연습해보려고 한다. 풀이 과정은 다음과 같은 순서를 가진다. 1. 입력받을 문자열과 문자 선언 2. 작업이 이루어질 메소드 선언 3. 메소드 구현 4. 출력 가장..
[백준 알고리즘 자바]11720 : 숫자의 합 수행일자 : 2022.04.10 https://www.acmicpc.net/problem/11720 11720번: 숫자의 합 첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다. www.acmicpc.net 문제 N개의 숫자가 공백 없이 쓰여있다. 이 숫자를 모두 합해서 출력하는 프로그램을 작성하시오 입력 첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다. 출력 입력으로 주어진 숫자 N개의 합을 출력한다. 입출력 예제 이번 문제는 BufferedReader와 [ split ] 을 사용해서 풀어보았다. split 이란, 구분자를 기준으로 문자열을 잘라 배열로 입력할 때 사용하는 메소드이다. 사용 방..
[백준 알고리즘 자바]11654 : 아스키 코드 수행일자 : 2021.08.19 https://www.acmicpc.net/problem/11654 11654번: 아스키 코드 알파벳 소문자, 대문자, 숫자 0-9중 하나가 주어졌을 때, 주어진 글자의 아스키 코드값을 출력하는 프로그램을 작성하시오. www.acmicpc.net 문제 알파벳 소문자, 대문자, 숫자 0-9중 하나가 주어졌을 때, 주어진 글자의 아스키 코드값을 출력하는 프로그램을 작성하시오. 입력 알파벳 소문자, 대문자, 숫자 0-9 중 하나가 첫째 줄에 주어진다. 출력 입력으로 주어진 글자의 아스키 코드 값을 출력한다. 입출력 예제 이번 문제는 오랜만에 Scanner 와 BufferedReader를 사용하여 두 가지 방식으로 풀어보았다. Scanner 를 사용할 때에는 charAt() 메소..
[백준 알고리즘 자바]1065 : 한수 수행일자 : 2021.08.10 https://www.acmicpc.net/problem/1065 1065번: 한수 어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 www.acmicpc.net 문제 어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 1,000보다 작거나 같은 자연수 N이 주어진다. 출력 10,000보다 작거나 같은 셀프 넘버를 한 ..
[백준 알고리즘 자바]4673 : 셀프 넘버 수행일자 : 2021.08.11 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 문제 셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때, 이 수를 시작해서 n, d(n), d(d(n)), d(d(d(n))..