언어/JAVA
JAVA 두 변수의 값 바꾸기 tmp
코딩사무소장
2023. 5. 16. 16:12
반응형
int a = 10, int b = 20일 때
두 변수에 담긴 값을 서로 바꾸기 위해서는 어떻게 해야 하는가?
tmp를 몰랐을 때 처음 시도했던 것은 if문이다.
if (a!=b) {
a = b;
b = a;
}
하지만, 생각해 보면 a = b; 를 실행하면 이미 a의 값은 20이 될 것이고,
그 이후에 b = a; 를 실행되니 20=20 이 실행될 것이다.
그렇다면 어떻게 두 변수의 값을 교환할 수 있을까?
tmp라는 임시저장소를 사용하는 것이다.
tmp = a;
a = b;
b = tmp;
int a = 10; int b = 20; 으로 가정한다면 //a=10, b=20, tmp=null;
a의 값인 10을 왼쪽에 있는 tmp에 저장해 두고, //a=10, b=20, tmp=10;
b의 값인 20을 왼쪽에 있는 a에 저장한다. //a=20, b=20, tmp=10;
그다음 tmp의 값인 10을 b안으로 넣어주면 //a=20, b=10, tmp=10;
이렇게 두 수를 변경하는 것이다.
//arr[a-1]의 값과 arr[b-1]의 값을 바꾸려면
for(int i=0; i<M; i++) {
int tmp;
int a = sc.nextInt();
int b = sc.nextInt();
tmp = arr[a-1];
arr[a-1] = arr[b-1];
arr[b-1] = tmp;
}
백준 10813번 문제의 일부를 예제로 가져왔다.
반응형