Programming399 백준 지그재그 행렬 /*아하 저렇게 옆뒤 아래로 움직이는 행렬에 대한 문제가 나오는구나, 오케이요.어떻게 처리하는지 천천히 살펴보도록 하겠습니다. 이 배열은 존재한다고 가정하고 몇번째에무엇이 존재하는지 알면 됩니다. 그럼 예를 들어보도록 하겠습니다. 아니면 움직임을 가정하고풀어보도록 하겠습니다. 저것을 저렇게 보지 말고 짝수열 홀수열 이렇게 보면 됩니다.먼저 만들어 있는 행렬이라고 가정을 하고, 짝수열, 홀수 열 이렇게 보면 됩니다.그리고 그안에서 규칙을 찾아보도록 하겠습니다.예를 들어서 먼저 어디 행렬에 속하는지 먼저 찾아보면 14번쨰는1+2+3+4+5+6+...+n 상황에서 먼저 어디에 속하는지 찾습니다.그래서 14는14-1 = 1313 - 2 = 1111-3 = 88-4 = 44>5 ? 노 이기때문에 5번째에 속하게 .. 2018. 1. 25. 백준 별찍기 /*자 다음으로 규칙 찾기 문제로 넘어왔습니다.첫째줄 오케이요.*/ #include using namespace std; int N;string star; void problemIn() {cin >> N;} void solve() {for (int i = 1; i 2018. 1. 25. 백준 크로아티아 /*단어가 주어졌을 때 몇개의 크로아티아 알파벳으로 이루어져 있는지 출력합니다.여기에 안나온 변경치는 그냥 한의 단어로 세면 됩니다. 오케이요 일단 받아보도록 하겠습니다. ljes=njak 를 받았다고 가정합니다.*/ #include #include using namespace std; string word;int ans = 0; void problemIn() {cin >> word;} void solve() {ans = word.length();for (int i = 0; i < word.length(); i++) {if (word[i] == 'l') {if (word[i + 1] == 'j') {ans--;}} else if (word[i] == 'c') {if (word[i + 1] == '=' |.. 2018. 1. 25. 백준 다이얼 /*문제를 익숙하게 풀 수 있도록, 그리고 틀린 문제는 틀리도록 내버려 둬야 합니다. 최근틀린 문제 기록해서, 그것만 다시 풀어볼 수 있도록 해야합니다. 그런데 지금은 다지는 시간이므로 다시 한번 풀어보는 시간을 가지면 좋습니다. 그리고 비슷한 문제가 나오면 생각이빠르게 나리라 생각됩니다. 다이얼 전화기를 사용합니다. 숫자를 하나 누른다음에 금속핀이 있는 곳까지 시계방향으로 돌립니다. 숫자 1을 걸려면 총 2초가 필요 외운 단어가 주어졌을 때, 이 전화를 걸기 위해서 필요한 시간을 구하는 프로그램이. 다른 숫자를 누르려면 다이얼이 원래 위치로 돌아가는 것을 기다려야합니다.오케이요. 그럼 1을 하려면 총 4초가 걸리는 것입니까? 예를 한번 풀어보도록 하겠습니다.UNUCIC 이어서 868242 인데 이것이 .. 2018. 1. 25. 문자열 입력 받기 c++ 띄어쓰기가 아니라 계속해서 문자열을 받는 것입니다. string 을 사용해서 받으면 못 받습니다. 그럼 어떻게 받아야하는가요? getline 을 써서 받아보도록 하겠습니다. /*단어의 개숫 찾기 null 포인트의 개수를 찾으면 되겠습니다. 오케이요. */ #include #include using namespace std; string word;int cnt = 0; void problem_in() {getline(cin, word);} void solve() {for (int i = 0; i < word.length(); i++) {if (word[i] == ' ') {cnt++;}} if (word[0] == ' ') {cnt--;} if (word[word.length() - 1] == ' ') {.. 2018. 1. 25. 띄어있는 알파벳 파악하기 flag 를 두어서 끝나면 1로 설정하도록 하나요? 어떻게 하나요? 보세요aa bb cc dd a 이렇게 받았다고 가정을 하빈다. 그럼 알파벳 어레이에서 숫자를 샌다고 가정을 합니다. 연속된 숫자를 기록한다음에 다시 a 를 확인합니다.그런데 flag 가 1로 되어 있습니다. 그럼 이것은 연속된 알파벳이 아님을 감지합니다.오케이 그럼 이 플래그를 1로 만들기 위해서는 어떻게 해야하나요? 먼저 a 를 입력 받고 flag = 0 입니다. 아이와 아이+1 을 비교합니다. 그래서 다르면 i 의 flag 를 1로 처리합니다. 오케이요. 그럼 가장 마지막에 있는 d 의 경우는 어떻게 처리하나요? 예를 들어 aa bb cc dd 가 들어왔다고 가정을 합니다. 그럼 flag 의 경우 1 1 1 로 닫히고 마지막 d는 그.. 2018. 1. 25. 백준 단어공부 /*알파벳 대소문자로 된 단어가 주어지면, 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램대문자와 소문자를 구문하지 않습니다. 오케이. 일단 입력을 받고이것을 숫자로 변경해야하는가? 26개 어레이를 만들어서 카운트를 올린다음에 오케이요.그런데 대문자인지 소문자 인지 어떻게 알 수 있나요. 대문자면 소문자로 변경하도록 해야하는데, 이것이 가능한가요?찾아보도록 오케이 아스키코드가 65 A 이고 97 이 a 이니까 97보다 크면 소문자입니다.이것을 대문자로 바꿔주도록 하겠습니다.97-65 = 32 같은 숫자가 있는지 어떻게 찾아볼 수 있나요?최대값은 찾을 수 있고, 최대값을 찾은 후에 같은 숫자가 있는지 찾도록 하겠습니다.*/ #include #include #include using namespace .. 2018. 1. 25. 백준 문자열 입력받기 #include #include using namespace std; int T;int R;string word; void problem_in() {cin >> R;cin >> word;} void solve() { string word_new = ""; for (int i = 0; i < word.length(); i++) {for (int j = 0; j < R; j++) {word_new += word[i];}} cout T;for (int i = 0; i < T; i++) {problem_in();solve();} return 0;} c++ 에서 문자열 입력받기 위해서, string 을 사용합니다. 그럼 간단하게 한번에 받을 수도 있고, 받은 후에 문자하나씩 접근할 수 있습니다. 그리고 배열의 크.. 2018. 1. 25. 백준 문자열 입력받기 #define _CRT_SECURE_NO_WARNINGS // scanf 보안 경고로 인한 컴파일 에러 방지#include #include using namespace std; int main(){char word[101];int alpha[26];int index; scanf("%s", word);for (int i = 0; i < 26; i++)alpha[i] = -1; // 처음 나오는 것이 몇번째에 나오는지 확인을 하면 좋은데, 예제를 통해서 진행합니다.// b a e k j o o n 순이므로 b 가 나오면, for (int i = 0; !(word[i] == '\0'); i++) {for (int j = 0; j < 26; j++) {if (word[i] == 97 + j && alpha[j].. 2018. 1. 24. 백준 2920 음계 /*다장조는 c de f g a b C 8개의 음으로 으루어져 있습닏. 숫자로 표현 합니다. 1 부터 9까지 차례대로면 ascending, 8부터 1까지 차례대로 연주한다면 decending, 둘다 아니면, mixed 연주한 순서가 주어졌을 때,이것이 acending, descending mixed 인지 판별하는 프로그램을 작성하세요. 입력을 받고 솟팅을 한다음에 하나씩 비교해가면서, 아니면 break 로 나오면 되지요.먼저 받은 것과 받은 것을 저장하는 것을 만들면 됩니다 오케이요. 3가지에 대해서 조사를 해야 하는데, 어떻게 해야하나요. flag 를 해서 if 문으로넘겨야 하는지, */ #include #include #include using namespace std; int a[8] = { 0 }.. 2018. 1. 24. 이전 1 ··· 18 19 20 21 22 23 24 ··· 40 다음