Machineboy空

10808 알파벳 개수 / 1159 농구경기 - 카운팅 배열과 아스키코드 변환 본문

Computer/Coding Test

10808 알파벳 개수 / 1159 농구경기 - 카운팅 배열과 아스키코드 변환

안녕도라 2024. 1. 30. 17:18

https://www.acmicpc.net/problem/10808

 

10808번: 알파벳 개수

단어에 포함되어 있는 a의 개수, b의 개수, …, z의 개수를 공백으로 구분해서 출력한다.

www.acmicpc.net

문제 요약

단어에 들어간 알파벳의 개수를 카운팅하여 배열로 출력.

 

난이도

Bronze 4

 

https://www.acmicpc.net/problem/1159

 

1159번: 농구 경기

상근이는 농구의 세계에서 점차 영향력을 넓혀가고 있다. 처음에 그는 농구 경기를 좋아하는 사람이었다. 농구에 대한 열정은 그를 막을 수 없었고, 결국 상근이는 농구장을 청소하는 일을 시작

www.acmicpc.net

문제 요약

앞 글자가 같은 이름 카운팅

 

난이도

Bronze 2

 


풀이

  • char 형과 int형 간의 형변환
  • 아스키 코드 활용 배열의 인덱스 배분하기

REVIEW

아스키 코드를 잘 변환하여 a ~ z를 배열의 0 ~25번까지 잘 매핑하는 것.

이제는 좀 익숙해진듯하지만 늘 더 간결한 활용식이 눈에 띄어 정리해둔다.

 

떠올리고 이해하기 간편한 방법을 쓰면되긴 함.

하지만 구간의 개수가 주어져있을 때 %연산을 이용해 인덱스에 접근하는 방법은 늘 떠올릴 수 있어야 !


문법 정리

string n;
int a[26];

a[n[0] -'a']++;
// char - char : int로 형변환 후 연산 실행​
string ret;
int i;

//동일한 코드
ret += i + 'a';
ret += (char)(i + 'a');

char c = 'P'+13 - 26 // 구간의 개수만큼 뺴주기
char c = 'A' + ('P' +13 - 'A') %26 // 나머지 이용해 얼마나 시작점으로부터 떨어져있는지