'SW 업무 관련' 카테고리의 글 목록 (8 Page)

SW 업무 관련 117

2805. 농작물 수확하기

문제가 단순한데...생각보다 정답률이 낮은 문제이다. 이유는 모르겄다!!! 풀이 방법은 오랜만에 그림을 첨부하여 설명하겠다! 규칙 1. 길이/2는 한 변의 가운데이다.규칙 2. 가운데를 기준으로 x축으로 -1씩 당겨지며 한 행에서 더해지는 배열 한 칸의 개수는 +2씩 증가한다. 위의 두 가지 규칙으로 상층부와 하층부를 더하며 가운데는 따로 더해주었다! 숫자는 맨위 맨 아래 가운데를 기준으로 1이며, 다음 덧셈 시작 위치의 순서이다!! 12345678910111213141516171819202122232425262728293031323334353637383940#include #include int arr[51][51]; int main(){ int T; scanf("%d", &T); for (int i ..

1249. [S/W 문제해결 응용] 4일차 - 보급로

이건...솔직히 풀다가 답을 봤다..ㅎㅎ 거의 비슷하긴 했는데..2%가 부족했다!!!!! BFS를 이용하며 모든 맵을 탐색한다. 그리고 map 이외의 배열을 하나 더 만들어 해당 좌표에 오는 최단 시간을 계속 갱신하면 된다>! 백준에 이거랑 비슷한 문제를 풀었던 것 같은데 기억이 안 난다..그때는 BFS말고 다른 방법으로 풀었었는데....메모이 제이션으로 풀었었나.....내일은 새로운 방법으로 풀어봐야지!!! #include #include int map[111][111];int visit[111][111];int Q[2][100 * 100 * 100];int dx[] = { -1,1,0,0 };int dy[] = { 0,0,-1,1 };int Q_Front, Q_Back;int main(){int Te..

1210. [S/W 문제해결 기본] 2일차 - Ladder1

사타리타기!!!! 시작을 전부 뒤져서 찾을 필요가 전~~~~~~~혀 없다. x부터 거꾸로 올라가면 한 방에 해결!!!!!!! 큐도 필요없이..그냥 거꾸로 올라가면서 1만 쭉~따라가면 된다. 주의해야하는 것은!!! 나는 int dx[] = { -1,1,0,0 };int dy[] = { 0,0,-1,1 }; for (int k = 0; k < 4; k++){int xx = X + dx[k];int yy = Y + dy[k];if (map[yy][xx] == 1){X += dx[k];Y += dy[k];map[Y][X] = 2;break;}}위와 같은 방법을 써써 상하좌우 4방을 살피는데... int dx[]={0,0,-1,1};int dy[]={-1,1,0,0}; 와 같이 y축의 1을 먼저 찾으면 엉뚱한 결..

1238. [S/W 문제해결 기본] 10일차 - Contact

계속 답이 틀리길래 테케 하나씩 넣고 돌리면 답이 또 맞아서 이건 분명히 초기화 문제야!!!!!!!!!! 라고 생각하고 초기화를 다 검토하고 이상이 없어서 버그 찾느라 엄청난 삽질을 했다. 결론은 역시 초기화 문제...memset에 배열의 크기 부분에 sizeof(0)을 주고 있었다ㅜ,ㅠ 하...2시간이나 걸리다니 미쳤다. 풀이는 간단하다. BFS로 돌린다음 BFS 단계를 체크하는 배열을 별도로 만들어서 제일 마지막 단계에 있는 숫자들 중에서 가장 큰 숫자를 출력하면 된다. 문제 설명에서 보여지는 예제는2 / 7 15 / 1 4 / 10 8 17로 단계가 진행되면 별도의 배열로 단계를 체크해주면 된다.2 / 7 15 / 1 4 / 10 8 170 / 1 1 / 2 2 / 3 3 3 요런식!!마지막 3단계..

1219. [S/W 문제해결 기본] 4일차 - 길찾기

이건 두 개의 방법으로 풀었다. 1. 인접 행렬을 이용한 BFS.2. 문제에서 주어진 가이드라인을 통해서. 1번 같은 경우 인접행렬로 풀 때 2와 3이 연결되어 있으면arr[2][3]=arr[3][2]=1;이런 식으로 연결이 됨을 표시해줬는데..여기는 일방 통행이라는 전제 때문인지arr[2][3]=1;요렇게만 해줘야된다..ㅎㅎ 1.123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354#include #include int Q[99 * 99];int Map[111][111], visit[111];int Q_back, Q_front, T, Len, Flag; int main(){ for..

1240. [S/W 문제해결 응용] 1일차 - 단순 2진 암호코드

입력 배열 다 필요 없이 맨 위에 한 줄만 있으면 암호를 해독하는데 충분하다.map 배열에 암호가 저장되며 입력되는 배열에 1이 입력 된 후부터 최대 56개를 입력받는다.map 배열에 6부터 대입한 이유는 1앞에 0이 올수도 있기 때문!!! 이렇게 찾은 map 배열의 뒤에서부터 비교해가면서 암호를 찾았다.암호의 맨 뒤는 무조건 1이기 때문에!!!!! 시작 위치가 명확하다. 끝! 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697..

1961. 숫자 배열 회전

규칙만 찾으면 간단한 문제인데...이 문제처럼 테스트 케이스의 아웃풋을 주지 않았으면 엄청 헤맸을 것이다ㅜ,ㅠ 배열 순서 뒤섞고 하는 문제 왜케 어렵지.... 출력 결과값을 보면 규칙을 찾을 수 있다. 규칙은 종이를 버려서..다시 그리기 귀찮아 자세히 적기는 그렇지만 배열의 크기에 상관없이 90도 돌릴 때 마다 원래 배열에서 일정한 규칙으로 출력하면 된다!!! 처음에 숫자로 *10해가면서 더해주었는데....맨 앞이 0이면 틀리더군!! 그래서 3차원 배열로 문자열 사용해서 풀었다!!! 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051#include #include int map[10][10..

1954. 달팽이 숫자

열혈c에 이 문제가 있었던 것으로 기억한다. 모든 문제를 풀었지만...이 문제는 못 풀고 넘어간 기억이 난다. 지금은 풀 수 있겠지!!!했지만.......다른 사람의 풀이를 보고 말았다ㅜ,ㅠ 설명은 코드를 보면...굳이 필요가 없을 것이다! 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748#include #include int map[11][11]; int main(){ int x, y, Test, num, Direction, len, Length; scanf("%d", &Test); for (int i = 1; i = 0) { for (int a = 1; a