본문 바로가기

전체 글547

swe 1221 GNS 1. 문자열 처리하는 방법2. 인풋이 의미하는바 명확히 할것3. 설계시 단순한 문제도, 어떻게 하면 더 쉽게 풀 수 있을지, 한번 더 고민할 것4. 오히려 쉬운데 안풀어본 문제는 자료구조가 쉽게 떠오르지 않음.5. 단순한 방법말고, 정리된 방법을 어떻게 사용할 수 있을지 고민할 것. 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162/*1406 문제풀이 시작합니다.1221 GNS*/ #include #include #include #include using namespace std; string tc;char word[100001];int k;int .. 2018. 3. 30.
백준 벽 부수고 이동하기 1. 부수고 가는 것, 부수지 않고 가는 것 큐의 구조체에서 확인하기. 특이점 : 현재 벽을 부순 개수를 기준으로 더 전진하는지, 아니면 스킵하는지 판단하도록 합니다.그리고 bfs 문제에서 시간을 줄일 수 있는 방법은 dp 를 사용하던지, visit 를 고차원으로 사용하던지 입니다. 먼저 visit 를 손보고, 이것으로 안되면 dp를 사용하도록 하면 됩니다. 메모리 초과는 거의 나지 않기 때문에 걱정 노노지금 10 * 1000 * 1000 을 해도 나지 않습니다. 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727.. 2018. 3. 30.
swe Digit Sum strlenchar[30]str /*19:47 분 시작합니다. 최종적으로 n 이 어떤 값이 되는지 구하는 프로그램을 작성하세요.예제를 통해서 풀면 되겠습니다. 숫자를 받아서 몇의 자리 수인지 확인하도록 합니다. */ #include #include #include using namespace std;int ans;char str[20];int length;int sum;int num;long long divNum;int flag; void problemIn() {//cin >> str;scanf("%s", str);} void numSum() {if ((num / 10) == 0) {flag = 1;sum = num;return;}for (int i = 0; i = 0; i--) {divNum = pow.. 2018. 3. 29.
swe 1247 최적 경로 1. 순열문제, dfs 문제 풀이 입니다.2. 오께이. dfs 로 풀면서 조합을 어떻게 진행할 것인지 확실히 합니다.3. 디버깅 /*1900 문제풀이 시작하겠습니다.1247 최적 경로 문제입니다.경로 중 가장 짧은 것을 찾으려고 합니다. 회사 집 좌표, 2~10명 사이의 고객의 좌표가 주어짐회사 -> 고객 -> 집으로 돌아가는 최소 거리를 찾습니다.일단 입력을 받아 보겠습니다. 이거 맵으로 입력 받아서 푸는 문제가 아닌 것 같은데. 예제를 한번 보도록 하겠습니다. 0 1 2 3 4 5 6 있으면모두 1 2 3 4 5 를 모두 1로 만든 다음에 6으로 가는 거리를 계산하면 되겠습니다. dfs 로 풀고 depth == 5 이면, 마지막에 end 와의 거리를 계산하면 되겠습니다.순열문제입니다. */ #incl.. 2018. 3. 29.
swe 1219 길찾기 1. dfs 인데2. 계속 돌길래 원인을 찾아봤더니, 0이여도 다시 제자리로 돌아와서 그렇다....3. 꼼꼼히 짤 필요가 있다. dfs 는 정확하게 구현하지 않으면 계속 돈다... 40... /*1550 시작합니다.존재하면 1 없으면 0아하 그럼 배열 2개를 저장한다음에 어떻게 해야 하지0 에서 1, 2 로 가면 도달하는 지점에 멈출 것입니다. 오께이.이것을 큐로 넣어서 하나씩 할까요? 아니면 바로바로 쭉쭉 할까요? dfs 로 쭉쭉해보도록 하겠습니다. */ #include #include using namespace std;#define SIZE 100 int one[SIZE];int two[SIZE];int oneV[SIZE];int twoV[SIZE];int n;int ans;int a, b; voi.. 2018. 3. 29.
swe 1218 괄호 짝짓기 1. 아이디어를 떠올리고, 그것을 토대로 설계를 합니다.단, 그 아이디어가 쉬운 예제에서 뿐만 아니라 실제 예제에서도 돌아가는지 확인할 필요가 있습니다. /*1218 괄호 짝짓기 문제 시작합니다.1523분 시작합니다. 괄호들의 짝이 맞는지 확인하기. */ #include #include #include using namespace std; string str;int ans = 1;int map[4];int length; void problemIn() {cin >> str;} void solve() {length = str.size();for (int i = 0; i = 0) { map[0]++; }else {ans = .. 2018. 3. 29.
백준 9466 텀 프로젝트 1. dfs + cycle 문제입니다. 특이점은 visit, finish 배열을 사용하나는 점입니다.dfs 의 구조를 보면 먼저 방문은 시작하고 다음 next를 찾습니다.그리고 visit 가 0이면 들어가고 끝났는지 확인해서 끝나지 않았으면 들어가서, 역순회를 하도록 합니다. 오께이 그렇게 역순회를 마치지고, 자기 자신까지 ++ 을 하고 나서 나와줍니다. 만약에 비지트가 안되어있다면, 비지트에 넥스트를 넣고 dfs를 다시 들어갑니다. 그리고 else 가 끝이 나면, finish 를 해둡니다. 오께이. 그다음에 solve 함수에서는 i=0 부터 N 까지 해줍니다. visit 가 0이면 들어가도록 합니다. 오께이. 아직은 하나씩 짜기가 쉽지 않으니, 오께이. 처음에 인덱스가 0부터 시작하니까 처음입력 받을때.. 2018. 3. 29.
swe 1216 회문2 1. 쉬운문제는 20분컷 중간문제는 40분 컷입니다.2. 한번에 설계해서 완성하기.3. 처음에 입력을 받고 한번 디버깅을 하면 좋으려나?4. 컴퓨터가 빠르면 할맛이 나는데, 버벅거리면...ㅇㄹ5. 디버깅 없이도 처음부터 잘 할 수 있도록 예외처리도 모두 생각하면서 설계를 하도록 합니다. /*1000 시작합니다.1216 회문2 문제입닙니다. 먼저 8*8에서 풀고, 100 * 100 으로 넘어가겠습니다.제일 큰 8 에서 7 .... 쭉쭉쭉 내려가면서 찾도록 합니다.*/ #include #include #include using namespace std;#define SIZE 100 // 100int map[SIZE][SIZE];int ans;int isFine;string str; void problemIn.. 2018. 3. 29.
swe 1215 회문1 1. 인덱스 연습하기 좋은 문제입니다.2. 규칙을 찾아내고 그 규칙을 코딩으로 옮기는 연습입니다. /*1817 시작합니다.1215 회문 길이에 따른 회문의 개수를 구합니다.그럼 짝수일때와 홀 수 일때를 나누어서 확인합니다. 1일때는 맵의 크기를짝수일때는 길이의 반절만큼 비교해서 ans++홀수일때는 그것을 중심으로 양옆으로 비교해서 ans++ 을 하도록 합니다. */ #include #include #include using namespace std; #define SIZE 8int map[SIZE][SIZE];string str;int ans;int k;int isFine; void problemIn() {cin >> k;for (int i = 0; i > str;for.. 2018. 3. 28.
swe 1213 String 1. 아이디어 구현2. 예외 없으니, 시간 복잡도를 생각해야 하나3. 시간 초과나오면? 그때가서 새로운 설계? 중복을 줄이기 위해서는 어떻게 해야 하는가? /*문자열을 연습합니다.1745 시작합니다.받은 것은 그대로 두고, 비교해야 하는 문자열을 검사하도록 하겠습니다.*/ #include #include using namespace std; int word[10];string str;string input;int ans;int length;int length2;int isMatch; void problemIn() {cin >> input;cin >> str; length = input.size();for (int i = 0; i < length; i++) {word[i] = input[i];}} void.. 2018. 3. 28.