전체 글 669

[JAVA] 백준 5622번 크로아티아 알파벳 : 문자열 탐색

2941번: 크로아티아 알파벳 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= www.acmicpc.net 1. 문제 추상화 입력받은 문자열에서 크로아티아 문자가 사용된 횟수를 구하시오. 2. 알고리즘 첫 번째 방법 String API 이용하기 ( replaceAll 메소드 ) 두 번째 방법 if- else if 문으로 탐색하기 3. 풀이 첫 번째 방법 import java.util.Scanner; public class Main { public static void main(String[] args) { String[] croa..

문제풀이/String 2021.07.13

[ JAVA ] InputStreamReader : 인코딩

[ JAVA ] 기반 스트림, 보조 스트림 [ JAVA ] 스트림이란? ( 바이트 기반 스트림 , 문자 기반 스트림 ) 스트림(Stream)에 대해서 파헤쳐보자. [ JAVA ] 문자 인코딩(Character Encoding)이란? 인간과 컴퓨터가 대화하려면 어떻게 할까? 인간의 언 lordofkangs.tistory.com 지난 포스팅에서 바이트 스트림의 기반스트림과 보조스트림의 개념을 알아보았다. 개인적으로 문자스트림에서 가장 중요한 클래스는 InputStreamReader 클래스라 생각한다. Reader 추상클래스는 유니코드 문자를 읽기 위해 존재한다. 그러나 인코딩에는 다양한 방식이 존재한다. 인코딩의 종류마다 문자를 표현하는 바이트 수도 다르다. UTF-8 인코딩은 한글을 3byte로 표현하고 ..

JAVA/JAVA Basic 2021.07.12

[ JAVA ] 기반 스트림, 보조 스트림

[ JAVA ] 스트림이란? ( 바이트 기반 스트림 , 문자 기반 스트림 ) 스트림(Stream)에 대해서 파헤쳐보자. [ JAVA ] 문자 인코딩(Character Encoding)이란? 인간과 컴퓨터가 대화하려면 어떻게 할까? 인간의 언어는 문자, 이미지, 동영상, 소리 등이 있다. 그러나 컴퓨터는 1 lordofkangs.tistory.com 지난 포스팅에서 스트림(Stream)에 대해서 알아보았다. 간단히 정리하면 데이터는 스트림의 형태로 전송된다. 스트림(Stream)이란, 바이트의 흐름을 의미한다. 프로그램은 외부의 데이터를 스트림의 형태로 입출력한다. 이때, 1byte는 아스키코드 문자와 이미지, 영상 데이터의 기본 단위가 된다. 그러므로 1byte 단위로 스트림을 읽을 필요가 있는데, 이때..

JAVA/JAVA Basic 2021.07.12

[JAVA] 백준 5622번 다이얼 : Switch문

5622번: 다이얼 첫째 줄에 알파벳 대문자로 이루어진 단어가 주어진다. 단어의 길이는 2보다 크거나 같고, 15보다 작거나 같다. www.acmicpc.net 1. 문제 추상화 입력된 문자열의 각 문자와 대응되는 정수와 대응하는 시간의 총합을 구하시오 2. 알고리즘 첫 번째 방법 Swtich 문 사용하기 두 번째 방법 아스키코드를 활용하여 if-elseif문 구현하기 3. 풀이 첫번째 방법 ( Switch문 ) import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String data = sc.next(); int timeForCall ..

문제풀이 2021.07.12

[JAVA] 백준 2908번 상수 : 문자열 역순 출력

2908번: 상수 상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 www.acmicpc.net 1. 문제 추상화 입력된 두 개 정수를 역순으로 변환 후 크기가 큰 정수를 출력하라. 2. 알고리즘 첫 번째 방법 정수 % 10 연산을 사용하여, 1의 자리 수부터 역순으로 String 변수에 붙이기 두 번째 방법 API 이용하기 (StringBuilder 클래스) 3. 풀이 첫 번째 방법 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io..

문제풀이/String 2021.07.12

[JAVA] 백준 1157번 단어 공부 : 이해하기 쉬운 코드란?

1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net 1. 문제 추상화 입력된 문장에서 가장 많이 사용된 알파벳을 출력하시오. 2. 제약조건 대문자와 소문자는 같은 문자 취급한다. 3. 알고리즘 아스키코드 문자표 활용 1. 알파벳 배열 생성 2. 각 인덱스는 알파벳의 아스키코드표 십진수와 대응 3. 소문자 십진수가 대문자 십진수보다 +32 큼. 4. 풀이 import java.util.Scanner; public class Main { public static void main(String[] args) { // TODO Auto-..

문제풀이 2021.07.11

[JAVA] 백준 10809번 알파벳 찾기 : 아스키코드

10809번: 알파벳 찾기 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출 www.acmicpc.net 1. 문제 추상화 소문자 a부터 소문자 z까지 알파벳 중 입력된 문자열에 사용된 알파벳은 인덱스 사용되지 않은 인덱스는 -1 출력 2. 알고리즘 String의 indexOf() 메소드를 활용하여 인덱스를 탐색한다. 3. 풀이 내 풀이 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in);..

문제풀이 2021.07.11

[클린코드] 깨끗한 코드란 무엇인가?

Clean Code 『CLEAN CODE(클린 코드)』은 오브젝트 멘토(OBJECT MENTOR)의 동료들과 힘을 모아 ‘개발하며’ 클린 코드를 만드는 최상의 애자일 기법을 소개하고 있다. 소프트웨어 장인 정신의 가치를 심어 주며 book.naver.com 로버트 마틴의 클린코드를 읽으며, 프로젝트 하나를 깨끗한 코드로 바꾸려 한다. 우선, 깨끗한 코드란 무엇인지 알아보자. 깨끗한 코드란, 유지보수가 쉬운 코드를 의미한다. 유지보수가 어려우면 새로운 코드에 투자할 시간이 줄고 간단한 문제가 반복적으로 발생한다. 버그를 발견하거나 운영환경이 변하거나 신규변경사항이 생기거나 버그 방지 방안을 모색하는 등의 유지보수 상황에서 유지보수를 쉽게 할 수 있는 코드가 깨끗한 코드라 할 수 있다. 그러므로 깨끗한 코드..

[JAVA] 백준 1065번 한수 : 등차수열

1065번: 한수 어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 www.acmicpc.net 1. 문제 추상화 입력받은 수보다 같거나 작은 수 중, 각 자리 수가 등차수열을 이루는 수(한수)의 개수를 구하시오. 2. 알고리즘 나의 풀이 반복문을 돌려 1의 자리부터 하나씩 체크한다. 1. current = num % 10, next = (num/10)%10 이면 d = next - current이고 nextnext = next + d 이다. 2. 다음 자리수로 이동하면 next가 current가 된다. 3. 이전 자리수에서의 nextnext와 현재 자리수의 ..

문제풀이 2021.07.10

[JAVA] 백준 3052번 나머지 : 중복값 제거

3052번: 나머지 각 수를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1이다. 서로 다른 값은 6개가 있다. www.acmicpc.net 1. 문제 추상화 1차 추상화 10개의 입력 받은 수를 42로 나누었을 때 나오는 서로 다른 나머지가 몇 개 있는지 출력하시오. 2차 추상화 10개의 나머지 중 중복을 제거하여 서로 다른 나머지 개수를 구하시오 2. 알고리즘 HashSet 자료구조를 활용하여 중복제거하기 3. 풀이 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.Out..

문제풀이 2021.07.10