Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- C언어
- PHP 웹페이지 만들기
- hackerrank
- HTML
- 백준
- 숙명여자대학교 정보보안동아리
- Sookmyung Information Security Study
- 생활코딩
- WarGame
- XSS Game
- 머신러닝
- 웹페이지 만들기
- 풀이
- Python
- 자료구조 복습
- 숙명여자대학교 정보보안 동아리
- BOJ
- The Loard of BOF
- lob
- BOJ Python
- hackctf
- SWEA
- CSS
- c++
- c
- 파이썬
- 드림핵
- siss
- Javascript
- 기계학습
Archives
- Today
- Total
혜랑's STORY
[BOJ_C] 1316번, 2869번 본문
#BOJ 1316번 : 그룹 단어 체커
- 풀이
#include <stdio.h>
int check(char x[]){
int flag[26] = {0};
for(int i=0; x[i]; i++){
if(flag[x[i]-'a']){
return 0;
}
else{
char temp = x[i];
flag[x[i]-'a'] = 1;
while(1){
if(temp != x[++i]){
i--;
break;
}
}
}
}
return 1;
}
int main(){
int n, cnt = 0;
char word[101];
scanf("%d",&n);
for(int i=0; i<n; i++){
scanf("%s", word);
if(check(word)){
cnt++;
}
}
printf("%d", cnt);
return 0;
}
- 이미 등장한 알파벳을 구분하기 위해 알파벳 길이만큼의 배열 flag를 0으로 초기화 한다.
- 단어의 길이만큼 반복하며, 만약 이미 등장했던 단어라면(flag가 1이라면) return으로 0을 보낸다.
- 앞에서 등장하지 않았던 단어라면, flag의 알파벳 자리에 1을 대입하고, temp에 해당 알파벳을 넣어 다른 알파벳이 될 때까지 i의 값을 늘려준다. 다른 단어에 도착하면 i는 1을 빼준다. (뒤의 값과 비교하기 때문)
+) 여기서 알파벳 자리란, x[i] - 'a'를 통해 해당 알파벳이 a라면 0번째, b라면 1번째 자리값을 가지도록 한 것이다.
4. main함수에서 check()의 반환값이 1이면(그룹단어가 맞다면) cnt를 1 증가시킨다.
- 실행결과
#BOJ 2869번 : 달팽이는 올라가고 싶다.
- 풀이
#include <stdio.h>
int main(){
int a, b, v;
scanf("%d %d %d", &a, &b, &v);
printf("%d", ((v-b-1)/(a-b)+1));
return 0;
}
달팽이가 k일째 정상이라면 다음과 같은 수식으로 풀 수 있다.
높이 <= A*K - B*(K-1)
(A-B)*K >= V-K
K >= (V-B-1) / (A-B)
따라서 (v-b-1)/(a-b)+1을 출력하면 된다.
- 실행결과
'2021 SISS 21기 활동 > 겨울방학 C' 카테고리의 다른 글
[BOJ_C] 13235번, 2908번 (0) | 2021.02.24 |
---|---|
[BOJ_C] 4673번, 16503번 (0) | 2021.02.15 |
[BOJ_C] 2748번, 2750번 (0) | 2021.02.01 |
[BOJ_C] 2941번, 2884번 (0) | 2021.01.23 |
[BOJ_C] 1037번, 1712번 (0) | 2021.01.18 |