728x90 분류 전체보기 썸네일형 리스트형 [백준알고리즘] 2292번: 벌집 -C++ [백준알고리즘] 2292번: 벌집 -C++ 2292번: 벌집 (acmicpc.net) 2292번: 벌집 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌 www.acmicpc.net 이 문제도 좀 쉽다 보니 다른 분들의 코드를 보니 다양하게 풀 수 있는 문제라고 생각한다. 다만 입력 숫자의 범위가 10억까지 들어올 수 있으니 int 형이나 unsigned int 형으로는 처리할 수 없다. 따라서 64비트를 처리하기 위해 uint64_t (unsigned long long)을 사용했다. #include int main(void) { uint64_t n; std::ci.. 더보기 [백준알고리즘] 2941번: 크로아티아 알파벳 -C++ [백준알고리즘] 2941번: 크로아티아 알파벳 -C++ 2941번: 크로아티아 알파벳 (acmicpc.net) 2941번: 크로아티아 알파벳 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= www.acmicpc.net 크로아티아 알파벳과 변경된 문자를 맵핑하는 개념이 필요했다. set을 만들고, 변경 후의 문자들을 넣어주었다. 이때 "dz="의 경우만 길이가 3이고 나머지는 2이기 때문에 "dz="를 제외한 것들을 넣어주었다. 이후 하나씩 인덱싱하면서 앞 글자와 현재 글자를 한 쌍으로 만들어 길이가 2인 substr을 만들었다. .. 더보기 [백준알고리즘] 2908번: 상수 -C++ [백준알고리즘] 2908번: 상수 -C++ 2908번: 상수 (acmicpc.net) 2908번: 상수 상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 www.acmicpc.net 풀이 방법이야 여러 가지 있는 것 같다. 모든 숫자는 0이 없이 세 자리 숫자라는 조건 덕분에 각 자리의 숫자를 모두 찾아서 뒤집힌 숫자를 일일이 구할 수도 있다. 나는 여기서 string으로 입력받고 reverse하기로 결정했다. reverse()의 경우 헤더에 존재하며 뒤집을 주소의 iterator type의 first와 last를 인자로 받는다. 따라서 begin()과 end()를 사.. 더보기 [백준알고리즘] 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;.. 더보기 이전 1 ··· 20 21 22 23 24 25 26 ··· 50 다음