기억보다는 기록을 해볼까

C++ 공부하기 2일차 본문

백준으로 C++ 공부하기

C++ 공부하기 2일차

옥상에서 2021. 10. 24. 15:13
728x90

오늘 공부한 백준
10950, 11720, 2675, 1157, 1546, 2438, 2562, 2739, 10818, 10951, 10952, 3052, 2908, 1085, 4153, 10250

정리
숫자 하나하나 분리하기

while (input != 0){ int digit; digit = 0; digit = input % 10; sum += digit; input /= 10; }


숫자는 숫자끼리 연산해야 한다. (중간에 문자 있으면 연산 안됨)



백준 1157번
문제: 단어에서 가장 많이 사용된 알파벳을 대문자로 출력한다. 단, 가장 많이 사용된 알파벳이 여러 개 존재하는 경우에는 ?를 출력한다.

#include <iostream> #include <string> using namespace std; int main() { string str; int count[26] = {0}; cin >> str; for(int i = 0; i<str.length(); i++){ //알파벳 개수 세기 str[i] = toupper(str[i]); int index; index = (int)str[i] - 65; count[index]++; } int max = 0; int cnt = 0; int idx; //최대 찾기 for (int i = 0; i<26; i++){ if(count[i] > max) max = count[i]; } //동일 최댓값 검열 for (int i = 0; i<26; i++){ if (count[i] == max) { cnt++; idx = i; } } //검열 예외 처리 if (cnt != 1) cout << "?"; //정답 출력 else cout << (char)(idx+65); }

변수명을 잘 설정 해야 한다. debug 할 때 cnt, count[] 뭐가 뭔지 헷갈린다.
이 반복문이 어떤 명령을 실행하는지를 잘 알고 //주석으로 써놓자.


자기 분수를 알라
int = double + double 하면 int 는 정수 값으로 포현되어 double을 더하는 의미가 없어진다.
연산자 '/' 는 int끼리 연산할 떄 몫으로 결과가 나온다.
double끼리 연산해야 소수점까지 나온다.


최대 최소 구하기

  • 내가 알던 방식
int max = 0; for (int i = 0; i < n; i++) { if (num[i] > max) max = num[i]; }
  • sort 함수 이용
#include <algorithm> sort(array + 0, array + n)

sort 함수는 algorithm 라이브러리에 존재
sort (배열이름 + 시작주소, 배열이름 + 마지막 주소)


입력 개수 모를 때

while (cin >> a >> b){ ~~~~ }

while(1){ ~~~~~~~ ~~~~~ if (~~~~~) break; ~~~~ }

이런 식으로 while 내부에 break를 설정해 문제를 해결 할 수 있다.


이게 된는구나

int main() { string a ,b; cin >> a >> b; string big; for (int i = 2; i > 0; i--){ if (a[i] > b[i]) { big = a; break; } else if(a[i] < b[i]) { big = b; break; } else continue; } }

string a, b를 입력받고 a[2] 이렇게 바로 쓸 수 있구나
다른 비어있는 string을 들고 와서 바로 같게 만들 수 있구나
big = a;


2번 클래스로 넘어갔다.
수학 문제들이 많아진 느낌?
점점 경우의수를 따져야 할 문제들이 많이 나온다.
경우의 수는 별 것 없다. 고등학교 대처럼 천천히, 꼼꼼히 따지자.

728x90

'백준으로 C++ 공부하기' 카테고리의 다른 글

C++ 공부 6일차 (1181, 2164, 11650)  (0) 2021.10.28
C++ 공부 5일차  (0) 2021.10.27
C++ 공부 4일차  (0) 2021.10.26
C++ 공부 3일차  (0) 2021.10.26
C++ 공부하기  (0) 2021.10.23
Comments