Algorithm/String (138) 썸네일형 리스트형 (C++) - 백준(BOJ) 1871번 : 좋은 자동차 번호판 www.acmicpc.net/problem/1871 1871번: 좋은 자동차 번호판 각각의 자동차 번호판에 대해서, 좋은 번호판이면 "nice"를, 아니면 "not nice"를 출력한다. www.acmicpc.net 문자열을 다루는 문제였습니다. 풀이방법 abs와 stoi함수로 문제의 조건을 만족시킬 수 있도록 적절히 사용해주면 정답을 도출할 수 있습니다. Code #include using namespace std; int getIntFront(string front){ int sum = 0; for(int i = 0; i < front.size(); i++) sum += (front[i]-'A') * pow(26,front.size()-i-1); return sum; } int main(){ int .. (C++) - 백준(BOJ) 15904번 : UCPC는 무엇의 약자일까? www.acmicpc.net/problem/15904 15904번: UCPC는 무엇의 약자일까? 첫 번째 줄에 알파벳 대소문자, 공백으로 구성된 문자열이 주어진다. 문자열의 길이는 최대 1,000자이다. 문자열의 맨 앞과 맨 끝에 공백이 있는 경우는 없고, 공백이 연속해서 2번 이상 주어지는 www.acmicpc.net 문자의 서순("UCPC")을 지켜서 세주는 문제였습니다. 풀이방법 1. U일 때는 cnt = 1 2. C가 나왔을 때 2-1. cnt == 1이면 cnt = 2 2-2. cnt == 3이면 cnt = 4 3. P가 나왔을 때 cnt가 2라면 cnt = 3 4. cnt가 4라면 서순을 지켰고 적절히 축약한다면 UCPC를 만들 수 있습니다. Code #include using namespac.. (C++) - 백준(BOJ) 1371번 : 가장 많은 글자 답 www.acmicpc.net/problem/1371 1371번: 가장 많은 글자 첫째 줄부터 글의 문장이 주어진다. 글은 최대 5000글자로 구성되어 있고, 공백, 알파벳 소문자, 엔터로만 이루어져 있다. 그리고 적어도 하나의 알파벳이 있다. www.acmicpc.net 문자열을 다루는 문제였습니다. eof 즉 0을 만나면 입력을 종료해야합니다. 풀이방법 1. 알파벳 개수를 세줍니다. 2. 가장 큰 개수를 가진 알파벳을 순서대로 출력해줍니다. Code #include using namespace std; int big; int alpha[26]; int main() { while (1) { char c = 0; cin >> c; if (c == 0) break; if ('a' (C++) - 백준(BOJ) 4388번 : 받아올림 답 www.acmicpc.net/problem/4388 4388번: 받아올림 어린이에게 여러자리 숫자의 덧셈을 가르칠 때는 오른쪽 자리부터 왼쪽으로 하나씩 계산하는 방법을 가르쳐준다. 이때, 받아올림이 발생하게 되며 아이들은 여기서 혼란에 빠진다. 받아올림이 www.acmicpc.net 문자열을 적절히 처리하는 문제였습니다. 풀이방법 가장 긴 자리 수를 기준으로 일의자리부터 왼쪽으로 거슬러 올라가는 식으로 더해보고 비교해줍니다. 이 때 짧은 자리를 가진 수가 overflow가 나면 안됩니다. 1. 현재 자리 수가 짧은 자리 수에게도 있는 경우 a의 현재 자리 수 + b의 현재 자리 + 받아올림 여부(cnt) >= 10이라면 carry++, cnt = 1; else cnt = 0으로 초기화 2. 아닌 경우 a.. (C++) - 백준(BOJ) 1225번 : 이상한 곱셉 답 www.acmicpc.net/problem/1225 1225번: 이상한 곱셈 첫째 줄에 A와 B가 주어진다. 주어지는 두 수는 모두 10,000자리를 넘지 않는다. www.acmicpc.net 문자열 다루는 문제였습니다. 풀이방법 정답 변수에 O(N^2)의 시간복잡도로 모든 조합을 곱한 뒤 더해주면 됩니다. 1만자리까지 곱의 결과를 더하므로 int범위를 초과할 수 있기 때문에 ans의 자료형을 long long으로 해주시면 됩니다. 예를 들어 a,b string이 1만자리라면 나올 수 있는 경우의 수가 1만 * 1만 = 1억개가 됩니다. 따라서 a = "9999999..." b = "9999999..." 식으로 되어 있다면 81 * 1억 81억이 되므로 int범위인 21억을 초과합니다. Code #inc.. (Javascript) - 프로그래머스(2019 KAKAO BLIND) : 오픈채팅방 답 programmers.co.kr/learn/courses/30/lessons/42888 코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr map을 이용해 풀면 되는 문제였습니다. 풀이방법 map을 이용해 key값은 id, value는 nickName으로 생각해 무조건 닉네임이 존재하는 경우에 map을 update 해주는 생각을 했습니다. 1. record를 돌며 해당 정보를 map의 set함수를 이용해 저장합니다. 2. 마지막까지 change된 nickname까지 모두 반영이 되기 때문에 갱신이 완료된 map을.. (Python) - 백준(BOJ) 12780번 : 원피스 답 www.acmicpc.net/problem/12780 12780번: 원피스 바야흐로 지금은 대해적 시대, 밀짚모자 해적단의 선장 교정이는 어린 시절 우연히 잊지 못할 한 마디를 들었다. 그것은 바로 해적 왕 골.D.상윤이 자신이 모은 모든 보물인 원피스를 위대한 항 www.acmicpc.net 간단한 문자열 세기 문제였습니다. clue = input() word = input() print(clue.count(word)) (C++) - 백준(BOJ) 12605번 : 단어순서 뒤집기 답 www.acmicpc.net/problem/12605 12605번: 단어순서 뒤집기 스페이스로 띄어쓰기 된 단어들의 리스트가 주어질때, 단어들을 반대 순서로 뒤집어라. 각 라인은 w개의 영단어로 이루어져 있으며, 총 L개의 알파벳을 가진다. 각 행은 알파벳과 스페이스로만 www.acmicpc.net 간단한 문자열 처리 문제였습니다. Code #include using namespace std; int t; string getOppositeSentence(string sentence){ int size = sentence.size(); string ans = ""; string tmp = ""; vector s; for(int i = 0; i < size; i++){ tmp += sentence[i]; i.. 이전 1 ··· 12 13 14 15 16 17 18 다음