낫띵온미
일단 하고보자
낫띵온미
전체 방문자
오늘
어제
  • 분류 전체보기 (32)
    • 디자인 (0)
      • GIMP (0)
    • 코딩 (31)
      • C\C++ (2)
      • Python (0)
      • Linux (14)
      • HTML\CSS\JS (15)
      • 백준 풀이 (0)
      • WEB (0)
    • 개념정리 (1)
      • 컴퓨터 네트워킹(2022) (0)

블로그 메뉴

  • 홈
  • 태그

공지사항

인기 글

태그

  • 1157
  • 백준
  • 루트
  • 계층
  • 오픈소스
  • 명령어
  • 리눅스
  • 자료구조
  • 우분투
  • C언어
  • Linux
  • ubuntu
  • 권오흠

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
낫띵온미

일단 하고보자

코딩/C\C++

[C언어] 백준 1157 : 단어공부 풀이

2022. 10. 17. 23:29

수많은 시도끝에 다른 수업에서 힌트를 얻어서 통과ㅠㅠ

 

제가 푼 문제 흐름은 

 

1. 단어를 word 배열에 저장

2. 모두 대문자로 변경 (대소문자 구분하지 않기 때문에)

3. flag(알파벳배열)을 생성하여 word의 ASCII 코드에 해당하는 위치에 +1씩

4. 최대값 index 찾기

5. 만약 최대값이 중복이라면 "?" 출력

6. 아니라면 최대값 출력

 

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#pragma warning (disable:4996)
#define MAX 1000000

void sort(char* str);

int main() {
	char word[MAX];
	int max, index;
	scanf("%s", word);
	int n = strlen(word);

	for (int i = 0; i < n; i++) {
		word[i] = toupper(word[i]);
	}

	int flag[26] = { 0 };	//배열 초기화
	for (int i = 0; i < n; i++) {
		flag[word[i] - 'A'] += 1;	//ASCII코드 값
	}


	index = 0;
	for (int i = 0; i < 26; i++) {
		if (flag[i] > flag[index]) {
			index = i;
		}
	}

	for (int i = 0; i < 26; i++) {
		if (i != index && flag[i] == flag[index]) {
			printf("?");
			return 0;
		}
	}
	printf("%c", index+'A');

}

'코딩 > C\C++' 카테고리의 다른 글

[Programming] 쉽게 풀어쓴 C언어 Express 8장 풀이  (0) 2022.12.10
    '코딩/C\C++' 카테고리의 다른 글
    • [Programming] 쉽게 풀어쓴 C언어 Express 8장 풀이
    낫띵온미
    낫띵온미
    컴퓨터공학 전공 공부 / 독학 기록

    티스토리툴바