[C] 백준 #1547, #1598, #1703
#1547 문제 설명 컵 1번, 2번, 3번이 일렬로 놓여져 있다. 1번 컵 아래 공이 하나 있으며, 공은 움직이지 않는다. 임의의 두 컵을 고른뒤 그 위치를 바꾸려고 한다. 예를 들어 1번,2번 컵을 고르면 1번 컵 위치에 2번컵을, 2번컵 위치에 1번컵을 이동시킨다. 이때 공은 움직이지 않으므로 맨처음 1번컵이 있던 위치에 그대로 있다. 컵의 위치를 총 m번 바꾸고, 위치를 바꾼 방법이 주어지면 이 과정 이후 공이 들어있는 컵의 번호를 구하는 프로그램을 구해야한다. 풀이 과정 처음 문제 이해를 잘못해서 배열로 두고 그 숫자의 위치의 있는 컵들의 자리를 바꿨는데, 그게 아니라 번호가 매겨진 컵들을 바꾸는 거였다; 덕분에 코드가 조금 더러워졌지만 배열은 그대로 유지하고, while문을 통해 바꿀 컵들을 ..
2023. 9. 19.
[C] 백준 #1085, #1267, #1284
#1085 문제 설명 다음은 임의의 점 위에서 사각형의 경계선(모서리)까지 가는 최단거리를 구하는 문제이다. 아래 그림과 같이 x,y,w,h 값이 주어진다. 풀이 과정 한점에서 모서리까지 갈 수 있는 최단거리의 경우는 x, y, w-x, h-y 총 4가지 경우이다. 이 중 가장 짧은 거리가 최단거리라고 할 수 있다. 따라서 최솟값을 구해야한다. 나의 경우 배열에 값을 넣어 이중반복문을 돌려서 최솟값을 구했다. #include int main(){ int x,y,w,h; scanf("%d %d %d %d",&x, &y, &w, &h); //순서대로 입력받기 int num[4]; //num 배열을 생성하여 각 거리값 계산 num[0] = x; num[1] = y; num[2] = w-x; num[3] = h..
2023. 9. 17.