본문 바로가기

개발/PS17

[백준] 나는야 포켓몬 마스터 이다솜(1620), C++ 🔗 문제 링크https://www.acmicpc.net/problem/1620✍🏻 문제 설명💁🏻‍♀️ 내 풀이스토리가 너무 길다..😱 다 건너뛰고 마지막 오박사님 말씀만 보면 될 거 같다! 오박사 : 그럼 다솜아 이제 진정한 포켓몬 마스터가 되기 위해 도감을 완성시키도록 하여라. 일단 네가 현재 가지고 있는 포켓몬 도감에서 포켓몬의 이름을 보면 포켓몬의 번호를 말하거나, 포켓몬의 번호를 보면 포켓몬의 이름을 말하는 연습을 하도록 하여라. 나의 시험을 통과하면, 내가 새로 만든 도감을 주도록 하겠네. 포켓몬 매핑 문제라고 이해하면 된다!  M개 문제 중에서 번호를 입력받으면 해당 포켓몬의 이름을 출력하고, 이름을 입력받으면 해당 포켓몬의 번호를 출력하는 문제인데, 배열로 풀면 시간초과가 난다. 그.. 2024. 11. 14.
[백준] 수열(2559), C++ 🔗 문제 링크https://www.acmicpc.net/problem/2559✍🏻 문제 설명 💁🏻‍♀️ 내 풀이이 문제의 핵심은 누적합이다. psum[i] = psum[i-1] + nextVal; 누적합을 풀 땐 위와 같은 느낌을 기억하자! 🤖 코드#include using namespace std;int main(){ int n, k, psum[100001] = {0,}, maxTmp = -10000004, tmp; cin >> n >> k; for (int i = 1; i > tmp; psum[i] = psum[i - 1] + tmp; } for (int i = k; i  maxTmp = -10000004; 변수명이 maxTmp인데, 초기화 값이 '-10000004'인 이유는 최악의.. 2024. 11. 13.
[백준] 한국이 그리울 땐 서버에 접속하지(9996), C++ 🔗 문제 링크https://www.acmicpc.net/problem/9996 ✍🏻 문제 설명💁🏻‍♀️ 내 풀이*패턴 해석 주의이 문제는 놓칠 수 있는 부분이 있었다. 바로 패턴이다. 문제 예제를 보면 'a*d' , 'h*n'이러한 형식이다. 그래서 *앞뒤로 문자 1개만 올 수 있다고 착각할 수 있는 점을 주의하자! (제가 착각했어요 ㅎㅎ) *이 한 개만 존재하는 것이지 문자열의 패턴은 더 많을 수 있다. 그리고 문제 풀이의 키를 *에서 가져오면 된다. * 기준으로 앞과 뒤의 문자열을 잘라서 비교를 하면 되는 것이다. 자르는 것은 C++의 substr() 함수를 사용하자. substr() 함수#include #include using namespace std;int main() { strin.. 2024. 11. 12.
[백준] ROT13(11655), C++ 🔗 문제 링크https://www.acmicpc.net/problem/11655 ✍🏻 문제 설명💁🏻‍♀️ 내 풀이공백이 있는 문자열을 입력 받아야 하니 getline()함수를 사용하면 된다. [ getline함수 사용 예시 ]#include #include using namespace std;int main(){ string s; getline(cin, s); cout  그리고 ROT13은 기본 문자에서 +13을 한 값으로 암호화해주는 알고리즘으로, 입력 받은 문자열들을 +13으로 암호화해서 반환해주면 된다. 마지막으로 주의할 점은 대문자와 소문자를 분류하여 암호화해줘야 한다는 것과 +13 했을 때 해당 대문자, 소문자 아스키코드 범위를 넘어서면 -26을 해줘서 다시 범위 안에서 .. 2024. 11. 12.
[백준] 농구 경기(1159), C++ 🔗 문제 링크https://www.acmicpc.net/problem/1159  ✍🏻 문제 설명💁🏻‍♀️ 내 풀이이런 문제는 counting 배열을 생각하면 된다. 거기에 아스키코드 사용하여 풀면된다. 자세히 풀이를 해보면 선수 수만큼 모두 String으로 받고 앞글자만 Counting 배열에 넣어주면 된다. 그리고 5보다 크거나 같으면 순서대로 최종 출력 String에 넣어주면 된다. 이 문제가 조금 어렵다면, 아래 문제를 먼저 풀어보기를 추천!! 똑같이 counting배열과 아스키코드 사용하는 조금 더 쉬운 문제이다!https://seize-the-day9.tistory.com/46 [백준] 알파벳 개수(10808), C++🔗 문제 링크https://www.acmicpc.net/problem.. 2024. 11. 11.
[백준] 팰린드롬인지 확인하기(10988), C++ 🔗 문제 링크https://www.acmicpc.net/problem/10988✍🏻 문제 설명💁🏻‍♀️ 내 풀이팰린드롬이란 앞으로 읽을 때와 거꾸로 읽을 때 똑같은 단어이다. 정말 간단한 예를 들면 OㅅO같은 문자인 것이다. 거꾸로 돌려 읽어도 똑같다! 여기서 거꾸로가 핵심이다! 그냥 reverse해서 같은 문자열을 찾으면 된다! C++ revserse함수 사용#include reverse(str.begin(), str.end());🤖 코드#include #include using namespace std;int main(){ string str, oringStr; cin>> str; oringStr = str; reverse(str.begin(), str.end()); if(oringStr =.. 2024. 11. 11.