본문 바로가기

728x90

algorithm

[백준알고리즘] 1152번: 단어의 개수 -C++ [백준알고리즘] 1152번: 단어의 개수 -C++ 1152번: 단어의 개수 (acmicpc.net) 1152번: 단어의 개수 첫 줄에 영어 대소문자와 띄어쓰기로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 띄어쓰기 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 www.acmicpc.net 심오한 c++의 세계.. string type을 parsing 해주기 위해서 헤더에 있는 stringstream 을 사용했다. 추가로 istringstream, ostringstream이 있는데 각각 입력 형식과 출력 형식을 정해주는 용도 정도로 사용하는 것 같다. stringstream의 경우에는 stream 타입이기 때문에 헤더에 정의된 getline 함수.. 더보기
[백준알고리즘] 1157번: 단어 공부 -C++ [백준알고리즘] 1157번: 단어 공부 -C++ 1157번: 단어 공부 (acmicpc.net) 1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net 먼저, 문제를 풀면서 toupper, tolower 함수를 알았다. 원래는 C언어에도 있던 함수로 char를 인자로 해서 각각 대문자, 소문자로 변환해주는 함수로 헤더에 있다고 한다. C언어에 있었는데 왜 몰랐지... 아무튼, 하지만 헤더에 포함이 되어 있는지, 따로 추가를 해주지 않아도 코드가 동작했다. (이 부분은 혹시 아시는 분 계시면 알려주세요 ㅠ) 하지만 char 하나씩 변환하면서 반복문 돌.. 더보기
[백준알고리즘] 2675번: 문자열 반복 -C++ [백준알고리즘] 2675번: 문자열 반복 -C++ 2675번: 문자열 반복 (acmicpc.net) 2675번: 문자열 반복 문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다 www.acmicpc.net 어려운 것 없는 문제..! 필요한 것 만큼 반복해서 찍어줬다. 새로운 string 객체에 문자열을 만들고 한 번에 출력했다. #include #include int main(void) { int test_case; std::cin >> test_case; for (int t = 0; t < test_case; t++) { int r; std::string.. 더보기
[백준알고리즘] 10809번: 알파벳 찾기 -C++ [백준알고리즘] 10809번: 알파벳 찾기 -C++ 10809번: 알파벳 찾기 (acmicpc.net) 10809번: 알파벳 찾기 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출 www.acmicpc.net 그냥 알파벳 나오는 위치에 맞춰서 위치 저장해주면 된다. 배열 초기화 하는 함수가 있을 것 같아서 찾아보니 fill_n()이 있었다. 앞으로 요긴하게 쓸 것 같다. #include #include int main(void) { std::string s; std::cin >> s; const int ALPHA = 26; int alphabet[ALPH.. 더보기
[백준알고리즘] 11720번: 숫자의 합 -C++ [백준알고리즘] 11720번: 숫자의 합 -C++ 11720번: 숫자의 합 (acmicpc.net) 11720번: 숫자의 합 첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다. www.acmicpc.net 예제 3과 같이 긴 숫자가 들어올 수 있다. 최대 100자리까지 들어 올 수 있는데, 이를 담을 수 있는 자료형은 없다. 따라서 문자열로 받아주고 각각의 위치를 옮기면서 인덱싱해서 문자 단위로 처리해줘야 한다. 처음에 atoi를 썼었다. 안 틀리게 짰던 것 같았는데 틀렸다. 그래서 char '0' 값을 빼주도록 짰다. #include #include int main(void) { int l; std::cin >> l; std::string num;.. 더보기
[백준알고리즘] 1065번: 한수 -C++ [백준알고리즘] 1065번: 한수 -C++ 1065번: 한수 (acmicpc.net) 1065번: 한수 어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 www.acmicpc.net 정말 오랜만에 한수 문제를 풀었다. 100 미만은 무조건 등차수열이고, 1000은 등차수열이 아니다. 나머지 3자리 숫자에 대해 등차수열을 이루는 지만 확인해주면 된다. # include int main(void) { int n; std::cin >> n; int answer = 0; for (int i = 1; i 더보기
[백준알고리즘] 1316번: 그룹 단어 체커 -C++ [백준알고리즘] 1316번: 그룹 단어 체커 -C++ 1316번: 그룹 단어 체커 (acmicpc.net) 1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때 www.acmicpc.net C++ 연습을 시작해야겠다.. 토이 프로젝트 하는거 아니면 알고리즘 연습할겸 하는 것도 괜찮은 것 같다. 암튼 그룹 단어인 개수를 세어줘야 한다. 그룹 단어는 다음 두 가지 기준으로 정리했다. 주어진 단어에서 이전 알파벳과 현재 알파벳이 같은가 다르다면, 해당 단어에서 이전에 한 번 이상 나온 문자인가 2번 기준에서 True.. 더보기
[백준알고리즘] 4344번: 평균은 넘겠지 -Python [백준알고리즘] 4344번: 평균은 넘겠지 -Python 4344번: 평균은 넘겠지 (acmicpc.net) 4344번: 평균은 넘겠지 대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다. www.acmicpc.net 문제 그대로 풀었다. 값을 가져온 뒤, 평균을 구하고, 평균이 넘는 학생의 수를 구했다. 여기서 평균 이상을 구하면 안되고 평균 초과를 기준으로 구해야 한다. 각 케이스별로 학생의 수가 1000명 이하라 list로 점수를 받고, 학생 수와 점수들을 나눠도 통과는 했겠지만 deque을 사용했다. from collections import deque for _ in range(int(input())): score = deque(map(.. 더보기

728x90