끄적끄적 코딩
article thumbnail
[C++] 백준 16431번 베시와 데이지
알고리즘 2019. 10. 27. 23:51

베시와 데이지가 존에게 갈 때 누가 먼저 도착하는지 찾는 문제입니다. 베시는 상하좌우 대각선으로 이동이 가능하며, 데이지는 상하좌우로만 이동 할 수 있습니다. 베시가 먼저 도착할 경우 bessie를 출력 데이지가 먼저 도착할 경우 daisy를 출력 동시에 도착할 경우 tie를 출력합니다. 베시의 경우 대각선 이동이 가능하므로 x축의 거리차이와 y축의 거리차이중 큰 값이 걸리는 시간입니다. 데이지의 경우 상하좌우로만 이동이 가능하므로 x축의 거리차이와 y축의 거리차이의 합이 걸리는 시간입니다. 이 둘을 계산한 다음 시간이 적은 곳이 먼저 도착하는 곳이라 판단할 수 있습니다. #include #include #include using namespace std; int main(int argc, char *a..

article thumbnail
[C++] 백준 16430번 제리와 톰
알고리즘 2019. 10. 27. 23:36

x = 1 - P/Q일 때 x를 기약분수로 나타내는 문제입니다. #include #include #include using namespace std; int main(int argc, char *argv[]) { int a, b; int x, y; int result; cin >> x >> y; b = y; a = y - x; if (x == y) { cout

article thumbnail
[C++] 백준 14503번 로봇 청소기
알고리즘 2019. 10. 27. 03:20

시뮬레이션 문제입니다. 순서에 맞게 문제를 해결해나가면 됩니다. 1. 현재 위치 청소 2. 보고 있는 방향의 왼쪽 탐색 3. 더러울 시 그 위치로 이동 (방향은 유지) => 1번으로 이동 4. 깨끗하거나 벽일 경우 => 2번으로 이동 5. 4방면이 전부 깨끗하거나 벽일 경우 현재 보고 있는 방향의 뒤로 후진 (방향은 그대로) => 1번으로 이동 6. 후진의 경우 후진할 위치가 벽일 경우 => 종료 위의 방식으로 재귀함수를 만들어주었습니다. #include #include #include using namespace std; int map[60][60]; int c = 0; void move(int a, int b, int d) { for (int i = 0; i < 4; ++i) { int curDir ..

article thumbnail
[C++] 백준 10569번 다면체
알고리즘 2019. 10. 25. 20:23

면의 수를 구하는 문제입니다. 꼭짓점 - 모서리 + 면 = 2 라는 공식이 성립할 때 꼭짓점과 모서리가 주어집니다. 위의 공식을 치환해서 구해볼 때 = 꼿짓점 - 모서리 - 2 = -면 = -(꼿짓점 - 모서리 - 2) = 면 으로 나타낼 수 있습니다. #include #include using namespace std; int main(int argc, char *argv[]) { int ts; int x, y; int z; cin >> ts; while (ts--) { cin >> x >> y; z = x - 2 - y; z *= -1; cout

article thumbnail
[C++] 백준 1652번 누울 자리를 찾아라
알고리즘 2019. 10. 24. 18:57

누울 수 있는 자리를 찾는 문제입니다. .이 빈공간이고 X가 짐입니다. 가로줄과 세로줄을 각각 체크했습니다. 가로줄을 볼때 '.'이 연속해서 2개가 나타나면 카운트를 증가시키고 flag를 false로 줬습니다. 그리고 짐이 나타나면 flag를 true로 주고 위의 작업을 반복했습니다. 세로줄도 마찬가지로 해서 총 카운트를 출력했습니다. #include #include #include using namespace std; int n; int countM; int countN; char map[110][110]; string s; void checkM(int x) { bool flag = false; for (int i = 0; i < n; ++i) { if (!flag && map[i][x] == '.' ..

article thumbnail
[C++] 백준 1357번 뒤집힌 덧셈
알고리즘 2019. 10. 24. 18:08

두 수를 뒤집은 다음 더한 후 다시 뒤집은 결과를 출력하는 문제입니다. 다음처럼 문제를 해결했습니다. ex) 650 450 string으로 문자를 받습니다. => 056 054 reverse함수로 문자를 뒤집습니다. => 56 54 stoi함수를 이용해 숫자로 int형으로 변경합니다. => 110 int형 두 수를 더합니다. 그 후 to_string함수를 이용해 문자로 바꿉니다. => 011 reverse함수로 문자를 뒤집습니다. => 11 stoi함수로 int형으로 출력합니다. #include #include #include using namespace std; int main(int argc, char *argv[]) { int x, y; int sum; string a; string b; strin..

article thumbnail
[프로그래밍 언어론] 문법 (4)
프로그래밍 언어론 2019. 10. 23. 14:12

정규 문법과 CFG 문법에 대해서 알아보려고 한다. -> ( | )* -> a | b | c | ... | z -> 0 | 1 | 2 | ... | 9 => non-terminal syntax *는 0번 이상 여러번 반복을 의미하는 메타문자 문법에서 가장 먼저 나타나는 를 시작기호라고 함 언어 인식기 문법 + 파생을 이용해서 언어 인식기를 만들 수 있음 ex) 언어(L) = 0(10)* 입력 알파벳 = {0, 1} 입력 문자열 = 01010 오토마타 input symbol에 대해 state를 천이하는 모델링 툴을 state trasition diagram이라고 함. 이것을 좀 더 formal하게 나타낸 것이 오토마타라고 한다. 언어 생성기 언어 생성기 역시 문법에 의해 표현된다. ex) 0(10)..

[프로그래밍 언어론] 프로그래밍 언어들의 특징 (3)
프로그래밍 언어론 2019. 10. 23. 13:50

FORTRAN 4 1번부터 80번 캄럼까지 있는 코딩 용지에 작성 1~5번 칼럼까지는 문장 번호, 7~72번 칼럼은 문장을 적음. 내재적 형선언을 사용하여, 변수명의 첫글자가 I, J, K, L, M, N으로 시작하면 INTEGER형으로 그 외의 문자로 시작하면 REAL형으로 선언된다. 주석 = C-- 주석입니다 배열 선언 = DIMENSION LIST(99) 입력 = READ 60, LEN 출력 = WRITE 80, IRESULT if문 = IF((LEN .GT. 0) .AND. (LEN .LT. 100)) GO TO 101 GT = '>', LT = '

검색 태그