티스토리 뷰
Algorithm/[Java+Python+JavaScript]BackJoon
[BackJoon]10809번 스트림 사용해서 풀기
Vagabund.Gni 2022. 12. 17. 09:38728x90
반응형
문제
알파벳 소문자로만 이루어진 단어 S가 주어진다.
각각의 알파벳에 대해서, 단어에 포함되어 있는 경우에는 처음 등장하는 위치를,
포함되어 있지 않은 경우에는 -1을 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 단어 S가 주어진다. 단어의 길이는 100을 넘지 않으며, 알파벳 소문자로만 이루어져 있다.
출력
각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다.
만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출력한다. 단어의 첫 번째 글자는 0번째 위치이고, 두 번째 글자는 1번째 위치이다.
풀이
알파벳 개수대로 26개의 원소를 가진 리스트를 생성해 -1로 전부 채워두었다.
이후 주어진 단어를 char()메서드를 통해 아스키코드로 변환한 후 -97을 해서 소문자 a를 0으로 맞추었다.
이후 간단하게 for문을 돌면서 해당 알파벳 인덱스에 해당하는 값이 -1이면 처음 등장했다는 뜻이니까 현재의 인덱스를,
그렇지 않다면 이전에 한 번은 등장했다는 뜻이니까 그냥 넘어가도록 했고 등장하지 않는 알파벳은 당연히 -1을 유지한다.
이후엔 문제 조건에 맞춰 출력하면 끝.
import java.util.*;
import java.util.stream.Collectors;
public class Prob10809 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
List<Integer> result = new ArrayList<>();
for (int i = 0; i < 26; i++) {
result.add(-1);
}
List<Integer> ch = sc.nextLine().chars()
.map(a -> a - 97)
.boxed()
.collect(Collectors.toList());
for (int i = 0; i < ch.size(); i++) {
if (result.get(ch.get(i)) == -1) result.set(ch.get(i), i);
else continue;
}
for (int i = 0; i < 26; i++) {
System.out.print(result.get(i) + " ");
}
}
}
반응형
'Algorithm > [Java+Python+JavaScript]BackJoon' 카테고리의 다른 글
[BackJoon]1152번 (0) | 2022.12.18 |
---|---|
[BackJoon]1157번 스트림 사용해서 풀기 (2) | 2022.12.17 |
[BackJoon]2675번 스트림 사용해서 풀기 (0) | 2022.12.17 |
[BackJoon]11720번 스트림으로 풀기 (2) | 2022.12.16 |
[BackJoon]1065번 스트림으로 풀기 (0) | 2022.12.16 |
[BackJoon]4673번 스트림으로 풀기 (2) | 2022.12.15 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- java
- BOJ
- 면접 준비
- 맛집
- 기술면접
- 파이썬
- 리스트
- 야경
- 세모
- 지지
- Algorithm
- 백준
- 알고리즘
- 유럽여행
- RX100M5
- 세계일주
- 칼이사
- 남미
- a6000
- 스프링
- Python
- 동적계획법
- 스트림
- 세계여행
- 자바
- 중남미
- 여행
- 유럽
- spring
- Backjoon
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함