알고리즘 :: 백준 :: 1159 - 농구 경기
·
Problem Solving
❔문제 🔗문제링크 🔄 문제 및 입출력 조건 파악1 ≤ 선수의 수 ≤ 150각 선수의 성 ≤ 30글자, 소문자로 이뤄짐.성의 '첫 글자'가 같은 선수가 5명이상있다면 해당 첫글자들을 출력없다면 PREDAJA 출력.✏️ 문제풀이중요한 건 입력받은 문자열의 첫 글자입니다.이전 문제(10808 알파벳 개수)에서 다뤘듯이, 소문자에 대응하는 26칸의 카운팅 배열을 만듭니다.각 이름의 첫 글자에 대응하는 배열 값을 증가시킵니다. ( `배열[(첫글자)-'a']++` )카운팅 배열을 순회하며 값이 5 이상이라면 다시 `(인덱스)+'a'`해줘서 소문자로 출력해줍니다.📝 코드#include using namespace std;int main() { ios::sync_with_stdio(false), cin.tie(n..
알고리즘 :: 백준 :: 10988 - 팰린드롬인지 확인하기
·
Problem Solving
❔문제 🔗문제링크🔄 문제 및 입출력 조건 파악입력: 길이는 ≤ 100이며 '소문자'로만 이뤄짐.✏️ 문제풀이회문 여부를 판단하는 방법C 방법맨 왼쪽부터 오른쪽 방향으로 향하는 커서맨 오른쪽부터 왼쪽 방향으로 향하는 커서두 커서가 가리키는 문자가 서로 다르거나, 교차할 때까지 진행합니다.무사히 교차했다면 해당 단어는 회문입니다.C++ 방법다른 `std::string`에 단어를 뒤집어서 저장합니다.원본과 뒤집은 복사본을 `=` 연산자로 비교합니다.📝 코드#include using namespace std;int main() { ios::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr); string s; cin >> s; string ss(s);..
알고리즘 :: 백준 :: 10808 - 알파벳 개수
·
Problem Solving
❔문제  🔗문제링크  🔄 문제 및 입출력 조건 파악입력: '소문자'단어, 길이 ≤ 100✏️ 문제풀이알파벳 소문자는 총 26개이므로 26칸짜리 `int`형 배열을 만듭니다.입력받은 문자열 속 문자를 처음부터 끝까지 하나씩 읽으며 `배열[문자-'a']` 값을 하나씩 증가시키며 카운팅합니다.배열 내 값을 모두 출력하면 정답입니다.📝 코드 #include using namespace std;int main() { ios::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr); array alpha = {0, }; string S; cin >> S; for (char c : S) alpha[c - 'a']++; for (int i : alpha) cou..
알고리즘 :: 백준 :: 2309 - 일곱 난쟁이
·
Problem Solving
❔문제  🔗문제링크  🔄 문제 및 입출력 조건 파악입력: 9명 키, 100을 넘지 않음출력: 키 합 100인 7명 조합 아무거나✏️ 문제풀이난쟁이 9명 중 7명을 뽑아 구한 키의 합이 100일 때 출력하는 bruteforce 문제입니다.9명 중 7명을 뽑는 것($_9C_7$)은, 9명 중 2명을 뽑는($_9C_2$) 경우의 수와 같습니다. 총 인원의 키 합에서 100을 뺀 값을 `diff`라 할 때2중 for문을 돌려서 선택한 2명의 키 합이 `diff`면 출력합니다.재귀함수를 돌려서 2명을 선택하고, 키 합이 `diff`면 출력합니다.오름차순으로 출력해야 하기 때문에, 2중 for문을 돌리던, 재귀함수를 돌리던 먼저 정렬부터 하는 것을 잊지 맙시다.📝 코드2중 for문 방법#include usin..