끄적끄적 코딩
article thumbnail
[C++] 백준 2037번 문자메시지
알고리즘 2019. 11. 5. 15:49

문자를 전부 누르는데 걸리는 시간을 구하는 문제입니다. 각 문자에 대한 시간과 집합을 설정해주고 시간을 계산해서 더해주고, 집합이 같으면 w만큼 추가해주면 됩니다. 특징으로는 공백은 연속으로 입력되도 w를 추가해주지 않아도 됩니다. #include #include #include #include #include using namespace std; int main(int argc, char* argv[]) { int p, w; int now = 0; int result = 0; int num[2][27] = { { 1, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 4, 1, 2, 3, 1, 2, 3, 4 }, { 1, 2, 2, 2, 3, 3, 3, 4..

article thumbnail
[C++] 백준 5671번 호텔 방 번호
알고리즘 2019. 11. 5. 13:02

a부터 b까지의 수 중에서 같은 숫자가 안 들어가는 수들의 개수를 구하는 문제입니다. 0~5000까지 미리 체크한 뒤에 카운트를 해주어서 결과를 도출했습니다. 테스트케이스의 종료에 대한 내용이 없으므로 EOF를 받으면 종료해줍니다. #include #include #include #include using namespace std; int main(int argc, char* argv[]) { bool flag; bool arr[5010] = { false, }; int num; int count = 0; int result; int x, y; int a[10]; string temp; for (int i = 0; i < 5010; ++i) { flag = false; num = i; memset(a, ..

article thumbnail
[C++] 백준 1855번 암호
알고리즘 2019. 11. 5. 11:53

암호화된 문자를 원래 문자로 바꾸는 문제입니다. 암호화하는걸 반대로 복호화해주는 식으로 풀어주면 됩니다. 먼저 왼쪽->오른쪽, 오른쪽->왼쪽 으로 읽어서 만들어진 문자를 다시 n열의 배열모양으로 바꿔줍니다. 그리고 배열을 세로로 읽으면 원래 문자가 나옵니다. #include #include #include #include using namespace std; int main(int argc, char* argv[]) { int n; int c = 0; int rem; int cycle; bool flag = false; char map[20][200]; string s; string result = ""; cin >> n; cin >> s; memset(map, ' ', sizeof(map)); cycl..

article thumbnail
[C++] 백준 14710번 고장난 시계
알고리즘 2019. 11. 5. 01:09

시계의 시침과 분침이 가능한 경우인지 불가능한지 찾는 문제입니다. 시침은 30도 마다 1시간씩 증가합니다. 이는 15도는 30분을 의미하며 5도는 10분을 의미합니다. 이처럼 분침을 결정하는 시침의 요소는 30분에서 결정됩니다. 그래서 시침 % 30을 해주므로서 분침과 비교할 수 있습니다. 0~29의 값이 분침을 나타내며 이는 360 / 30을 하면 12가 나옵니다. 0~29의 * 12를 하게 되면 분침의 각도가 나오는것으로 판단할 수 있습니다. #include using namespace std; int main(int argc, char *argv[]) { int x, y; int z; cin >> x >> y; z = x % 30; if (z * 12 == y) { cout

article thumbnail
[C++] 백준 4659번 비밀번호 발음하기
알고리즘 2019. 11. 5. 01:00

구현 문제입니다. 3가지 조건을 신경써서 구현해주면 됩니다. 1. 모음을 한가지 이상 포함하기. 2. 모음 또는 자음이 3개 연속 오면 안됨. 3. 같은 글자가 연속해서 오면 안됨. 하지만 oo, ee는 가능 #include #include using namespace std; int main(int argc, char *argv[]) { bool m;// 모음 1번 입력됬는지 bool check;// 이전 결과가 모음, 자음 bool flag;// 결과 bool con; // 이번 결과가 모음인지, 자음인지 int count;// 3연속 string s; char pre; char v[5] = { 'a', 'e', 'i', 'o', 'u' }; while (1) { m = false; flag = fa..

article thumbnail
[C++] 백준 1996번 지뢰 찾기
알고리즘 2019. 11. 4. 17:09

숫자가 입력되어 있는곳은 상하좌우 대각선 방면에 지뢰의 합이 숫자의 개수와 같습니다. 숫자가 있는곳의 상하좌우 대각선 방면에 현재 숫자를 더해주어서 최종적으로 9를 넘으면 M으로, 지뢰면 *, 그 외에는 더해진 수를 출력하면 됩니다. #include #include #include #include #define MAX 987654321 using namespace std; int n; char input[1010][1010]; int map[1010][1010]; int moveX[8] = { -1, -1, -1, 0, 0, 1, 1, 1 }; int moveY[8] = { -1, 0, 1, -1, 1, -1, 0, 1 }; string s; int main(int argc, char* argv[]) {..

article thumbnail
[C++] 백준 2160번 그림 비교
알고리즘 2019. 11. 4. 16:12

브루트포스로 문제를 해결했습니다. 겹치지 않는 부분이 가장 적은 곳들의 인덱스를 출력했습니다. #include #include #include #include #define MAX 987654321 using namespace std; int main(int argc, char* argv[]) { bool flag; int n; int count; int x, y; int result = MAX; char map[5][7][50]; string s; memset(map, 0, sizeof(map)); cin >> n; for (int i = 0; i > s; for (int k = 0; k < 7; ++k) { map[j..

article thumbnail
[C++] 백준 2804번 크로스워드 만들기
알고리즘 2019. 11. 4. 15:41

두개의 string을 받고 일치하는 부분으로 두 단어가 교차하게 출력하는 문제입니다. 첫번째 문자를 a 두번째 문자를 b라고 했을 때 a를 기준으로 순차적으로 비교해서 우선적으로 맞는것을 기준으로 출력합니다. find 함수를 통해서 인덱스 번호를 알아냈습니다. #include #include #include #include using namespace std; int main(int argc, char* argv[]) { int x, y; char map[40][40]; string s1; string s2; memset(map, '.', sizeof(map)); cin >> s1; cin >> s2; for (int i = 0; i < s1.length(); ++i) { if (s2.find(s1[i])

검색 태그