728x90
300x250
* Pass코드는 맨 밑에 있습니다.
1차 실패코드
아래는 제한시간 초과로 10개중 4개 테케만 맞은 케이스이다.
진짜 피라미드 형태로 구성을 해버려서 그런듯하다..
import java.util.Scanner;
import java.io.FileInputStream;
/*
사용하는 클래스명이 Solution 이어야 하므로, 가급적 Solution.java 를 사용할 것을 권장합니다.
이러한 상황에서도 동일하게 java Solution 명령으로 프로그램을 수행해볼 수 있습니다.
*/
class Solution
{
public static void main(String args[]) throws Exception
{
Scanner sc = new Scanner(System.in);
int T = sc.nextInt();
for(int tc=0;tc<T;tc++) {
//System.out.println("**************");
int N = sc.nextInt();
int num = 1;
int start=0,end=0;
for(int i=0;i<N;i++) {
for(int j=i;j<N-1;j++) {
//System.out.print(" ");
}
for(int j=0;j<(i*2)+1;j++){
if(j==0)
start=num;
if(j==(i*2))
end=num;
//System.out.print(num+" ");
num+=2;
}
}
System.out.println("#"+(tc+1)+" "+start+" "+end);
}
}
}
2차실패 코드
(테케for문 제외)이중for문에서 단일for문으로 바꿨는데도,, 제한시간 초과가 나오는군..뭘까
import java.util.Scanner;
import java.io.FileInputStream;
/*
사용하는 클래스명이 Solution 이어야 하므로, 가급적 Solution.java 를 사용할 것을 권장합니다.
이러한 상황에서도 동일하게 java Solution 명령으로 프로그램을 수행해볼 수 있습니다.
*/
class Solution
{
public static void main(String args[]) throws Exception
{
Scanner sc = new Scanner(System.in);
int T = sc.nextInt();
for(int tc=0;tc<T;tc++) {
int N = sc.nextInt();
int num = -1;
int start=1,end=1;
int cnt=N*N; //해당 층의 끝 자릿수
for(int i=0;i<cnt;i++) {
num+=2;
//System.out.print(num+" ");
if(i==(cnt-(N*2)+1))
start=num;
}
end= num;
//System.out.println();
System.out.println("#"+(tc+1)+" "+start+" "+end);
}
}
}
3차 실패코드
for문을 아예 없앴는데도 왜 안되는거야?!?!??!?!?!?!왜에에에에에
이번엔 제한시간초과는 아니고 오답이라고 나온다.
1/234/56789/10...../.../.../
층수의 가장 왼쪽은 (n-1)^2 , 가장 오른쪽은 n^2이다. 이걸 홀수로 대입해서 계산식을 만들었다. 근데 왜 안돼...?
import java.util.Scanner;
import java.io.FileInputStream;
/*
사용하는 클래스명이 Solution 이어야 하므로, 가급적 Solution.java 를 사용할 것을 권장합니다.
이러한 상황에서도 동일하게 java Solution 명령으로 프로그램을 수행해볼 수 있습니다.
*/
class Solution
{
public static void main(String args[]) throws Exception
{
Scanner sc = new Scanner(System.in);
int T = sc.nextInt();
for(int tc=0;tc<T;tc++) {
int N = sc.nextInt();
int start=0,end=0;
start=(N-1)*(N-1)+(N-1)*(N-1)+1; //(N-1)^2 + 1 +(N-1)^2
end=(N*N)+(N*N)-1; //N^2 + N^2 -1
System.out.println("#"+(tc+1)+" "+start+" "+end);
}
}
}
드디어 PASS 했다...,,
왜틀렸냐면,,,, 10의 9승이면 int 범위를 벗어나기 때문에 long타입으로 해줬어야 했던 것..ㅠ
아직 갈길이 멀구나
import java.util.Scanner;
import java.io.FileInputStream;
/*
사용하는 클래스명이 Solution 이어야 하므로, 가급적 Solution.java 를 사용할 것을 권장합니다.
이러한 상황에서도 동일하게 java Solution 명령으로 프로그램을 수행해볼 수 있습니다.
*/
class Solution
{
public static void main(String args[]) throws Exception
{
Scanner sc = new Scanner(System.in);
int T = sc.nextInt();
for(int tc=0;tc<T;tc++) {
long N = sc.nextInt();
long start=0,end=0;
start=(N-1)*(N-1)+(N-1)*(N-1)+1; //(N-1)^2 + 1 +(N-1)^2
end=(N*N)+(N*N)-1; //N^2 + N^2 -1
System.out.println("#"+(tc+1)+" "+start+" "+end);
}
}
}
728x90
'알고리즘 > 그 외' 카테고리의 다른 글
SWEA - 2072. 홀수만 더하기 (0) | 2020.02.27 |
---|---|
SWEA - 1244. [S/W 문제해결 응용] 2일차 - 최대 상금 (0) | 2020.02.25 |
SWEA - 5789. 현주의 상자 바꾸기 (0) | 2020.02.24 |
SWEA - 4466. 최대 성적표 만들기 (0) | 2020.02.23 |
SWEA - 5431. 민석이의 과제 체크하기 (0) | 2020.02.23 |