[백준 알고리즘] 2675번 : 문자열 반복
2019. 7. 10. 07:39
알고리즘/BaekJoon
문제 문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다. S에는 QR Code "alphanumeric" 문자만 들어있다. QR Code "alphanumeric" 문자는 "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ\$%*+-./:" 이다. 입력 첫째 줄에 테스트 케이스의 개수 T(1 ≤ T ≤ 1,000)가 주어진다. 각 테스트 케이스는 반복 횟수 R(1 ≤ R ≤ 8), 문자열 S가 공백으로 구분되어 주어진다. S의 길이는 적어도 1이며, 20글자를 넘지 않는다. 출력 각 테스트 케이스에 대해 P를 출력한다. 예제 입력 1 2 ..
[백준 알고리즘] 11654번 : 아스키 코드
2019. 7. 10. 07:36
알고리즘/BaekJoon
문제 알파벳 소문자, 대문자, 숫자 0-9중 하나가 주어졌을 때, 주어진 글자의 아스키 코드값을 출력하는 프로그램을 작성하시오. 입력 알파벳 소문자, 대문자, 숫자 0-9 중 하나가 첫째 줄에 주어진다. 출력 입력으로 주어진 글자의 아스키 코드 값을 출력한다. 예제 입력 1 A 예제 출력 1 65 예제 입력 2 C 예제 출력 2 67 예제 입력 3 0 예제 출력 3 48 예제 입력 4 9 예제 출력 4 57 예제 입력 5 a 예제 출력 5 97 예제 입력 6 z 예제 출력 6 122 내가 작성한 코드 (C++ 성공) #include using namespace std; int main(){ char str; cin.tie(0); cin >> str; cout
[백준 알고리즘] 1152번 : 단어의 개수
2019. 7. 8. 17:32
알고리즘/BaekJoon
문제 영어 대소문자와 띄어쓰기만으로 이루어진 문자열이 주어진다. 이 문자열에는 몇 개의 단어가 있을까? 이를 구하는 프로그램을 작성하시오. 단, 한 단어가 여러 번 등장하면 등장한 횟수만큼 모두 세어야 한다. 입력 첫 줄에 영어 대소문자와 띄어쓰기로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 띄어쓰기 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열의 앞과 뒤에는 공백이 있을 수도 있다. 출력 첫째 줄에 단어의 개수를 출력한다. 예제 입력 1 The Curious Case of Benjamin Button 예제 출력 1 6 예제 입력 2 Mazatneunde Wae Teullyeoyo 예제 출력 2 3 예제 입력 3 Teullinika T..
[백준 알고리즘] 10809번 : 알파벳 찾기
2019. 7. 8. 17:05
알고리즘/BaekJoon
문제 알파벳 소문자로만 이루어진 단어 S가 주어진다. 각각의 알파벳에 대해서, 단어에 포함되어 있는 경우에는 처음 등장하는 위치를, 포함되어 있지 않은 경우에는 -1을 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 단어 S가 주어진다. 단어의 길이는 100을 넘지 않으며, 알파벳 소문자로만 이루어져 있다. 출력 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출력한다. 단어의 첫 번째 글자는 0번째 위치이고, 두 번째 글자는 1번째 위치이다. 예제 입력 1 baekjoon 예제 출력 1 1 0 -1 -1 2 -1 -1 -1 -1 4 3 -1 -1 7 5 ..
[C++] 소수점 관련 함수 ceil(), floor(), round()
2019. 7. 7. 15:58
프로그래밍 언어/C++
소수점에 관련된 함수 3가지가 있다. 소수점 이하 모두 올림, ceil() 소수점 이하 모두 버림, floor() 소수점 이하 반올하고 버림, round() 에 대해서 정리해보자. 소수점 이하 모두 올림, ceil() 소수점 이하 숫자가 있다면 다 버리고 1을 더해주는 함수이다. #include double ceil (double x); float ceil (float x); long double ceil (long double x); double ceil (T x); // additional overloads for integral types 예제 #include #include using namespace std; int main(){ cout
알고리즘 Big-O 표기법
2019. 7. 4. 00:27
알고리즘/개념정리
알고리즘 공부를 하다가 시간복잡도에 대해서 잘 몰랐었는데 이 유튜뷰 영상을 통해 더 확실하게 알게 되었던 것 같다. 나중에 따로 정리해봐야 겠다. 너무 설명을 잘해주셔서 아래에 영상을 가져와봤다. 빅오 표기법을 모르는 사람이 있다면 이 영상을 보고 한번에 이해할 것 같다. 좋은 강의 너무 감사합니다!
완전 탐색 (brute force) 알고리즘
2019. 7. 4. 00:18
알고리즘/개념정리
개념 정리 브루트 포스 또는 완전 탐색이라고 불리우는 알고리즘이다. brute "짐승, 짐승같은, 난폭한" + force "힘, 무력, 폭력" 굳이 해석하자면 짐승같은 힘, 난폭한 힘으로 해석될 수 있다. 또는 완전 탐색 알고리즘이라고 불리는데 완전 탐색이라는 말 그대로 모든 경우의 수를 탐색하는 알고리즘이라고 말할 수 있다. 따라서, 간단하게 말하면 모든 경우의 수를 직접 다 해보는 알고리즘이다. 특징 부르트 포스는 조합 가능한 모든 문자열을 하나씩 대입해 보는 방식 으로 문제를 푸는 것 이다. 성공한다는 가정하에 항상 정확도 100%를 보장한다는 점에서 자원만 충분하면 가장 무서운 방법이다. 무식하게 보일 수 있지만 암호학에서는 가장 확실한 방법으로 통용되고 있다. 그래서 브루트 포스의 가장 큰 장점..
[백준 알고리즘] 1904번 : 01타일
2019. 7. 3. 05:14
알고리즘/BaekJoon
문제 지원이에게 2진 수열을 가르쳐 주기 위해, 지원이 아버지는 그에게 타일들을 선물해주셨다. 그리고 이 각각의 타일들은 0 또는 1이 쓰여 있는 낱장의 타일들이다. 어느 날 짓궂은 동주가 지원이의 공부를 방해하기 위해 0이 쓰여진 낱장의 타일들을 붙여서 한 쌍으로 이루어진 00 타일들을 만들었다. 결국 현재 1 하나만으로 이루어진 타일 또는 0타일을 두 개 붙인 한 쌍의 00타일들만이 남게 되었다. 그러므로 지원이는 타일로 더 이상 크기가 N인 모든 2진 수열을 만들 수 없게 되었다. 예를 들어, N=1일 때 1만 만들 수 있고, N=2일 때는 00, 11을 만들 수 있다. (01, 10은 만들 수 없게 되었다.) 또한 N=4일 때는 0011, 0000, 1001, 1100, 1111 등 총 5개의 2..