일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 자바스크립트
- old-1
- 코드엔진
- 소프트맥스 함수
- 게임 프로그래밍
- 계단함수
- JS
- 딥러닝
- 웹케이알
- 신규 아이디 추천
- boj
- 크레인 인형뽑기
- 10809
- 프로그래머스
- C언어
- 백준
- c언어 게임
- 리버싱
- Old-17
- webhacking.kr
- tcp
- openCV
- 코딩테스트 연습
- Old-14
- 퍼셉트론
- 5585
- 웹해킹
- c++
- 네트워크
- 자바
Archives
- Today
- Total
SteffenLee
[BOJ]10809 - 알파벳 찾기 [C++] 본문
안녕하세요. 오늘은 백준 브론즈 2문제인 알파벳 찾기를 풀이해보겠습니다.
알파벳 소문자로만 데이터가 주어지고, 해당 데이터에서 처음 알파벳이 나오는 지점을 저장해주고 출력해주는 문제입니다.
이 문제에서 핵심은 알파벳이 '처음'으로 등장하는 위치를 저장해주는 것이 중요하다고 생각했습니다.
그래서 저 같은 경우 위치를 저장해주는 배열을 애초에 -1로 초기화하고, 해당 위치 배열의 값이 -1이 아니면
건너뛰도록 했습니다.
코드를 보겠습니다.
#include<iostream>
#include<string>
using namespace std;
int main() {
string str;
int arr[100];
char alpa[26] = { 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
int size = 0, flag = 0;
cin >> str;
size = str.size();
for (int i = 0; i < 100; ++i)
arr[i] = -1;
for (int i = 0; i < size; ++i) {
for (int j = 0; j < 26; ++j) {//알파벳 탐색
if (str[i] == alpa[j]) {//일치
if (arr[j] == -1) {
if (i == 0) {//첫번째 인덱스
arr[j] = 0;
break;
}
else {
arr[j] = i;
break;
}
}
}
}
}
for (int i = 0; i <26; ++i)
cout << arr[i] << " ";
}
감사합니다.
'Problem Solving > BOJ' 카테고리의 다른 글
[BOJ]5585 - 거스름돈[C++] (0) | 2022.02.05 |
---|---|
[BOJ]1026 - 보물 [C++] (0) | 2022.02.02 |
[BOJ]11399 - ATM [C++] (0) | 2022.01.31 |
[BOJ]8393 - 합 [C++] (0) | 2022.01.31 |
[BOJ] 1924 - 2007년[C++] (0) | 2022.01.27 |
Comments