반응형
츄르사려고 코딩하는 코집사입니다.
1. [SW expert Academy] SWEA 1493번 수의 새로운 연산 자바(Java)
1) 난이도 : D3
2) 문제번호 : 1493번
3) 문제 출처
2. 문제
2차원 평면 제 1사분면 위의 격자점 (x,y)에 위 그림과 같이 대각선 순서로 점에 수를 붙인다.
점 (x,y)에 할당된 수는 #(x,y)로 나타낸다.
예를 들어 #(1,1) = 1, #(2,1)=3, #(2,2) = 5, #(4,4) = 25이다.
반대로 수 p가 할당된 점을 &(p)로 나타낸다.
예를 들어 &(1) = (1,1), &(3) = (2,1), &(5) = (2,2), &(25) = (4,4)이다.
두 점에 대해서 덧셈을 정의한다. 점 (x,y)와 점 (z,w)를 더하면 점 (x+z, y+w)가 된다.
즉, (x,y) + (z,w) = (x+z, y+w)로 정의한다.
우리가 해야 할 일은 수와 수에 대한 새로운 연산 ★를 구현하는 것으로, p★q는 #(&(p)+&(q))으로 나타난다.
예를 들어, &(1)=(1,1), &(5) = (2,2)이므로, 1★5 = #(&(1)+&(5)) = #((1,1)+(2,2)) = #(3,3) = 13이 된다.
3. 제약사항
-
4. 입력
첫 번째 줄에 테스트 케이스의 수 T가 주어진다.
각 테스트 케이스의 첫 번째 줄에는 두 정수 p,q(1 ≤ p, q ≤ 10,000)가 주어진다.
5. 출력
각 테스트 케이스마다 ‘#t’(t는 테스트 케이스 번호를 의미하며 1부터 시작한다)를 출력하고, 각 테스트 케이스마다 p★q의 값을 출력한다.
6. 풀이
- 점의 좌표를 구하는 메소드 1개와 좌표를 통해 값을 구하는 메소드 1개를 구현
-
7. 소스 코드
import java.util.*;
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int T = sc.nextInt(); //테스트케이스 개수
for(int tc=1;tc<=T;tc++) {
int p = sc.nextInt();
int q = sc.nextInt();
int[] A_coordi = getcoordi(p);
int[] B_coordi = getcoordi(q);
//좌표 연산
int[] newCoord = { A_coordi[0] + B_coordi[0], A_coordi[1] + B_coordi[1] };
//계산을 한 결과 값의 좌표의 값을 answer에 저장
int answer = getvalue(newCoord);
//출력
System.out.printf("#%d %d",tc,answer);
}
}
//좌표 구하기
public static int[] getcoordi(int value) {
int count = 1;
for(int i=1;;i++) {
for(int x=1, y=i;x<=i;x++,y--) {
if(value==count) {
return new int[] {x,y};
}
count++;
}
}
}
//값 가져오기
public static int getvalue(int[] coordi) {
int count = 1;
for(int i=1;;i++) {
for(int x=1,y=i;x<=i;x++,y--) {
if(x==coordi[0] && y == coordi[1]) {
return count;
}
count++;
}
}
}
}
반응형
'알고리즘 > SW expert Academy' 카테고리의 다른 글
[SW expert Academy] SWEA 4047번 영준이의 카드 카운팅 자바(Java) (0) | 2021.02.24 |
---|---|
[SW expert Academy] SWEA 6808번 규영이와 인영이의 카드게임 자바(Java) (0) | 2021.02.17 |
[SW expert Academy] SWEA 1984번 중간 평균값 구하기 자바(Java) (0) | 2021.02.17 |
[SW expert Academy] SWEA 5215번 햄버거 다이어트 자바(Java) - 비트마스크 풀이 (0) | 2021.02.17 |
[SW expert Academy] SWEA 11457번 gravity 자바(Java) (0) | 2021.02.14 |
[SW expert Academy] SWEA 7272번 안경이 없어! 자바(Java) (0) | 2021.02.13 |
[SW expert Academy] SWEA 1234번 비밀번호 자바(Java) (0) | 2021.02.13 |
[SW expert Academy] SWEA 1983번 조교의 성적 매기기 자바(Java) (0) | 2021.02.11 |
최근댓글