대학교 실습 종료 후, 겨울방학에 여유가 생겨서 다시 코딩 테스트를 시작했다.
거의 3달만에 다시 하려니 거의 다 까먹어서 큰일이다.. 꾸준히 공부해야겠다.
오랜만에 문제를 풀려고 하니 문제부터 제대로 눈에 들어오지 않아서 구글링을 통해 다른 분들의 설명을 여러번 이해하려고 노력했다.
참고한 문제 풀이 링크 : https://st-lab.tistory.com/62
https://www.acmicpc.net/problem/10809 10809번: 알파벳 찾기 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출력한다. 단어의 첫 번째 글자는 0번째 위치이고, 두 번째 글자는 1번째 위치이다. www.acmicpc.net 문제 문제의 난이도는 어렵지 않다. ※ 주의할 점 입력으로 주어지는 문자열은 알파벳 소문자로만 이루어져 있다. a ~ z 를 모두...
st-lab.tistory.com
먼저 문제를 살펴보자. 알파벳 소문자로만 이루어진(배열을 사용해보자) 단어 S(입력문 받기)
단어에 포함되어 있는 경우에는 처음 등장하는 위치(배열의 인덱스값), 포함 안 될 경우 -1 출력.
먼저 배열을 만든다. 배열의 인덱스 값은 26으로 설정했는데, 문제 풀이를 보니 알파벳의 개수가 총 26개이기 때문이다.
arr 배열은 입력받을 단어 s 에 각 문자의 위치를 가리킬 배열이다.
그리고 반복문을 하나 만들었다. 왜 만들었냐면, int 형 배열 arr 을 기본적으로 전부 -1 로 초기화 시키려고 했기 때문이다. 초기화를 시켜놓으면 단어 S의 각각 알파벳이 arr 배열로 채워지면 안 채워지는 부분들을 전부 -1 로 초기화 시켜놓아야 편해지기 때문이다.
그 후 scanner 을 통해 문자열 S 를 생성한다.
다시 반복문을 만드는데, 이제는 입력받은 단어들의 알파벳을 반복해서 검사해야 하기 때문이다.
변수 ch 는 문자열 S의 i의 값을 추출하고 저장받는다.
이후 반복되는 문자를 위해 if 문을 만들었다.
baekjoon 의 아스키코드 값을 찾아보았다.
b = 98 / a = 97 / e = 101 / k = 107 / j = 106 / o = 111 / n = 110
문제에서
'백준 및 코딩테스트 공부' 카테고리의 다른 글
백준 2588 자바 문제 풀이 (0) | 2024.10.18 |
---|---|
백준 2908번 자바 문제풀이 (0) | 2024.10.18 |
백준 2675번 자바 문제풀이 (0) | 2024.10.18 |
백준 5597번 자바 (0) | 2024.10.18 |
백준 10813번 자바 (0) | 2024.10.18 |