더 많이 실패하기

코딩공부 36일차: 백준 단계별로 풀어보기 자바 6단계 / 6. 문자열(2) 본문

알고리즘/백준

코딩공부 36일차: 백준 단계별로 풀어보기 자바 6단계 / 6. 문자열(2)

김발자~ 2022. 9. 5. 17:16
반응형

#비전공자개발 공부 36일차

백준에서 알고리즘 공부중

https://www.acmicpc.net/step

 

단계별로 풀어보기

단계별은 @jh05013님이 관리하고 계십니다. 단계제목설명정보총 문제내가 맞은 문제1입출력과 사칙연산입력, 출력과 사칙연산을 연습해 봅시다. Hello World!152조건문if 등의 조건문을 사용해 봅시다

www.acmicpc.net

 

 

 

 


6. 문자열

(5) 백준 1157번 문제

단어 공부

 

문제

 

 

과정 생각해보기

문자열의 인덱스값 i가 i+1인 j와 비교해

같으면 카운트로 더하기

카운트들끼리 구분해서 비교하고

문자열 인덱스i로 해당 문자 뽑아내기?
대문자 전환은 uppercase로 하면 될 것 같았는데

 

이렇게 count 배열 크기를 어떻게 설정하고, 구분할지막혀서 결국 다른 방법을 찾아봐야 했다

 

 

정답 인정 코드

블로그 이것저것 참고해서 쓰기..

 

우선 a부터 z까지 알파벳은 총 26개이므로 26 크기의 배열을 만든다

 

아스키코드에서 대문자 'A'에 해당하는 65와 소문자 'a'에 해당하는 97로 나누어 푸는 경우도 있었지만어차피 대문자로 출력해야 하므로 처음부터 입력 문자열을 대문자로 바꿔 하는 경우가 있었다

 

나는 i랑 i+1=j를 이용하려고 했는데 전체 알파벳을 끌어내고 거기에 인덱스값 +1을 해서 가장 크게 나오는 문자를 뽑아내는 게 생각하기 어려운 점이었다

 

 

직후 백지 복습

표시한 부분에 .toUppercase를 까먹어서 실패

대문자 처리를 하지 않으면 소문자도 따로 처리해줘야 하기 때문에 에러가 뜬다

 

 

 


6. 문자열

(6) 백준 1152번 문제

단어의 개수

 

문제

 

과정 생각해보기

단순히 생각해보면 공백 개수 + 1이겠지만

공백으로 시작하거나 끝날 수 있어 불가능하다

 

쉽게 생각해보면 공백 앞뒤로 글자가 있으면 가능한데 이걸 어떻게 구현하지?

 

정답 인정 코드

맨앞과 맨뒤에 공백이 있으면 이에 따라 if 문을 나누어 하면 되고,StringTokenizer를 사용하면 간단하게 풀 수 있다

 

변수 선언에서 s를 sc.next();로 하면 스페이스 전까지만 인식하므로무조건 값이 1이 나오니 주의!

 

 

직후 백지 복습

stringtokenizer 개념만 알면 엄청 쉬운 알고리즘이라 틀린 부분은 없었다

 

 

 

 


https://gimbalja.tistory.com/23

 

자바

Scanner 클래스 import java.util.Scanner; 로 호출 키보드에 입력한 값을 받는다 생성자 Scanner sc = new Scanner(System.in); 괄호 안 System은 대문자로 시작하도록 주의 메소드 문자열 String .next() 스페..

gimbalja.tistory.com

쓴 개념 정리 포스팅!

공부하면서, 복습하면서 차근차근 채울 예정이다

 

한 번에 여러 문제를 풀기보다 한 문제를 풀어도 확실히 하자는 마음가짐으로 가기로 했다

속도에 조급해지지 말자

반응형
Comments