끄적끄적 코딩
article thumbnail
[C++] 백준 2641번 다각형그리기
알고리즘 2019. 11. 6. 00:00

다각형이 주어지고, 만드는 방법이 주어질 때 방법 중에서 만들 수 있는 개수와, 만드는 방법을 출력하는 문제입니다. 주어진 다각형을 정방향은 주어지므로 반대방향에 대해서 구합니다. 반대방향 오른쪽 = 왼쪽 ( 1 = 3 ) 왼쪽 = 오른쪽 ( 3 = 1 ) 위 = 아래 ( 2 = 4 ) 아래 = 위 ( 4 = 2 ) 그리고 뒤집혔으므로 reverse함수를 통해서 뒤집어 주었습니다. 그리고 방법으로 나온 것들을 한글자씩 당기면서 주어진 정방향과 그에 대한 반대방향과 비교를 하고 같은 경우 카운트를 증가해주고 값을 배열에 넣어두었습니다. 모든 반복을 끝냈을 때 카운트와 배열에 값들을 출력했습니다. #include #include #include #include using namespace std; int m..

article thumbnail
[C++] 백준 1331번 나이트 투어
알고리즘 2019. 11. 5. 23:10

나이트가 모든 경로를 한번씩 거쳐서 처음 위치로 올 수 있는지 찾는 문제입니다. 이동을 할 때 다음의 규칙으로 이동이 가능합니다. 1. 이전 x좌표와 2차이, y좌표와 1차이 2. 이전 x좌표와 1차이, y좌표와 2차이 그리고 이미 이동한 곳은 체크를 해두어서 이동하지 못하도록 합니다. 과정을 반복해서 마지막 입력까지 확인을 한 뒤 마지막 위치에서 처음 위치를 다시 갈 수 있는지 체크해주면 됩니다. #include #include #include using namespace std; int main(int argc, char *argv[]) { bool flag = false; bool map[6][6]; int start[2]; int prev[2]; string s; cin >> s; prev[0] ..

article thumbnail
[C++] 백준 2615번 오목
알고리즘 2019. 11. 5. 22:43

오목판이 주어졌을 때 현재 누가 이겼는지 구하고 가장 왼쪽의 돌을 출력합니다. 만약 아무도 이기지 않은 상태면 0을 출력합니다. 4방향으로 검사합니다. 오른쪽 대각선 위, 오른쪽, 오른쪽 대각선 아래, 아래 4칸 검사를 하고 전부 같은 색 돌이면 시작점 돌의 뒤와 4번째 돌의 다음에 현재 색과 같은 돌이 있지 않는 경우라면 오목이 완성되었다고 판단했습니다. #include #include using namespace std; bool flag = false; int x, y; int black = 1; int white = 2; int map[19][19]; int chkMove[4][6][2] = { { { 1, 0 }, { 2, 0 }, { 3, 0 }, { 4, 0 }, { -1, 0 }, { 5,..

article thumbnail
[C++] 백준 4606번 The Seven Percent Solution
알고리즘 2019. 11. 5. 20:15

' ', !, $, %, (, ), * 7가지 문자를 변환된 문자로 변경해서 출력하면 됩니다. #include #include using namespace std; int main(int argc, char *argv[]) { bool flag; string s; string result; string arr[7] = { "%20", "%21", "%24", "%25", "%28", "%29", "%2a" }; char c[7] = { ' ', '!', '$', '%', '(', ')', '*' }; while (1) { result = ""; getline(cin, s); if (s == "#") { break; } for (int i = 0; i < s.length(); ++i) { flag = fa..

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

검색 태그