All
-
[ 2920 ] 음계 - array, vector알고리즘/BOJ 2021. 7. 27. 13:42
- [ 2920 ] 음계 다장조는 c d e f g a b C, 총 8개 음으로 이루어져있다. 이 문제에서 8개 음은 다음과 같이 숫자로 바꾸어 표현한다. c는 1로, d는 2로, ..., C를 8로 바꾼다. 1부터 8까지 차례대로 연주한다면 ascending, 8부터 1까지 차례대로 연주한다면 descending, 둘 다 아니라면 mixed 이다. 연주한 순서가 주어졌을 때, 이것이 ascending인지, descending인지, 아니면 mixed인지 판별하는 프로그램을 작성하시오. :: 입력 첫째 줄에 8개 숫자가 주어진다. 이 숫자는 문제 설명에서 설명한 음이며, 1부터 8까지 숫자가 한 번씩 등장한다. :: 출력 첫째 줄에 ascending, ..
-
[ 11328 ] Strfry - array, vector알고리즘/BOJ 2021. 7. 26. 22:16
- [ 11328 ] Strfry C 언어 프로그래밍에서 문자열(string)은 native한 자료형이 아니다. 사실, 문자열은 그저, 문자열의 끝을 표시하기 위한 말단의 NULL이 사용된, 문자들로 이루어진 문자열일 뿐이다. 하지만 프로그래밍 언어에서 문자열을 다루는 것은 매우 중요하기 때문에, C 표준 라이브러리는 문자열을 다루는 데에 매우 유용한 함수들을 제공하고 있다 : 그들 중에는 strcpy, strcmp, strtol, strtok, strlen, strcat 가 있다. 하지만, 잘 알려져 있지 않으며, 잘 사용되지도 않는 함수가 하나 있다 : strfry 함수다. strfry 함수는 입력된 문자열을 무작위로 재배열하여 새로운 문자열을 만..
-
[ 1919 ] 에너그램 만들기 - array, vector알고리즘/BOJ 2021. 7. 26. 21:02
- [ 1919 ] 에너그램 만들기 두 영어 단어가 철자의 순서를 뒤바꾸어 같아질 수 있을 때, 그러한 두 단어를 서로 애너그램 관계에 있다고 한다. 예를 들면 occurs 라는 영어 단어와 succor 는 서로 애너그램 관계에 있는데, occurs의 각 문자들의 순서를 잘 바꾸면 succor이 되기 때문이다. 한 편, dared와 bread는 서로 애너그램 관계에 있지 않다. 하지만 dared에서 맨 앞의 d를 제거하고, bread에서 제일 앞의 b를 제거하면, ared와 read라는 서로 애너그램 관계에 있는 단어가 남게 된다. 두 개의 영어 단어가 주어졌을 때, 두 단어가 서로 애너그램 관계에 있도록 만들기 위해서 제거해야 하는 최소 개수의 문자..
-
[ 10808 ] 알파벳 개수 - array, vector알고리즘/BOJ 2021. 7. 26. 20:33
- [ 10808 ] 알파벳 개수 알파벳 소문자로만 이루어진 단어 S가 주어진다. 각 알파벳이 단어에 몇 개가 포함되어 있는지 구하는 프로그램을 작성하시오. :: 입력 첫째 줄에 단어 S가 주어진다. 단어의 길이는 100을 넘지 않으며, 알파벳 소문자로만 이루어져 있다. :: 출력 단어에 포함되어 있는 a의 개수, b의 개수, …, z의 개수를 공백으로 구분해서 출력한다. - try 1 : 알파벳 개수를 배열에 저장하려고 했는데 , 인덱스를 계산하는 방법이 잘못된 듯 ! #include #include #include #include using namespace std; #define endl "\n" int alpa[26] = { 0, }; int ..
-
[ 10807 ] 개수 세기 - array, vector알고리즘/BOJ 2021. 7. 26. 17:40
- [ 10807 ] 개수 세기 총 N개의 정수가 주어졌을 때, 정수 v가 몇 개인지 구하는 프로그램을 작성하시오. :: 입력 첫째 줄에 정수의 개수 N(1 ≤ N ≤ 100)이 주어진다. 둘째 줄에는 정수가 공백으로 구분되어져있다. 셋째 줄에는 찾으려고 하는 정수 v가 주어진다. 입력으로 주어지는 정수와 v는 -100보다 크거나 같으며, 100보다 작거나 같다. :: 출력 첫째 줄에 입력으로 주어진 N개의 정수 중에 v가 몇 개인지 출력한다. - try 1 : 벡터에 다 집어넣고 타겟 숫자가 있는지 확인하려다가 숫자의 범위가 크지 않아서 그냥 미리 배열을 만들어 두고 풀었음 아이디어 다른 사람들 풀이를 보니까 100짜리 배열 하나를 만들고 거기에 숫..
-
[ 11024 ] 더하기 4 - 입출력알고리즘/BOJ 2021. 7. 26. 15:47
- [ 11024 ] 더하기 4 수 N개가 주어졌을 때, N개의 합을 구하는 프로그램을 작성하시오. :: 입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, N(1 ≤ N ≤ 100)개의 수가 공백으로 구분되어서 주어진다. 입력으로 주어지는 수는 10,000보다 작거나 같은 자연수이다. 또, 0으로 시작하는 수는 주어지지 않는다. :: 출력 각 테스트 케이스마다 입력받은 수 N개의 합을 한 줄에 하나씩 입력받은 순서대로 출력한다. - try 1 : 그 전에 11023 문제를 풀고 eof 처리하는 걸 배워서 비슷한 형식이라 생각해서 그렇게 풀어봤음 근데 eof 를 체크하면 반복문을 탈출해야하는데 탈출을 안함 ㅜㅜ #incl..
-
[ 11023 ] 더하기 3 - 입출력알고리즘/BOJ 2021. 7. 26. 15:03
- [ 11023 ] 더하기 3 수 N개가 주어졌을 때, N개의 합을 구하는 프로그램을 작성하시오. :: 입력 첫째 줄에 N(1 ≤ N ≤ 100)개의 수가 공백으로 구분되어서 주어진다. 입력으로 주어지는 수는 10,000보다 작거나 같은 자연수이다. 또, 0으로 시작하는 수는 주어지지 않는다. :: 출력 입력받은 수 N개의 합을 출력한다. - try 1 : string으로 입력 받아서 숫자를 구분해내려고 했는데 분명 더 간단한 방법이 있을 것 같아서 답을 봄 아이디어 1번 풀이에서는 scanf("%d", &n) == 1 을 이용해서 풀었다 scanf 는 입력받은 인자의 갯수를 리턴하는데 이 점을 이용해서 입력이 제대로 들어왔는지를 확인했다. 2번 풀이에서는 EOF가 ..
-
X - [ 11719 ] 그대로 출력하기 2 - 구현알고리즘/BOJ 2021. 7. 23. 20:40
- [ 11719 ] 그대로 출력하기 2 입력 받은 대로 출력하는 프로그램을 작성하시오. :: 입력 입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄이 주어질 수도 있고, 각 줄의 앞 뒤에 공백이 있을 수도 있다. :: 출력 입력받은 그대로 출력한다. - try 1 : 공백 입력 받는 법을 몰랐다 ! 에휴 , , , 그리고 이것도 입력을 모두 저장했다가 한번에 출력하는 줄 알았는데 아니었음 정답 코드 #include #include #include #include using namespace std; #define endl "\n" int main() { strin..