신발끈 공식(꼭짓점 좌표로 다각형 면적 구하는 방법)으로 문제 해결
import java.io.*;
class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] x = br.readLine().split(" ");
String[] y = br.readLine().split(" ");
String[] z = br.readLine().split(" ");
double result = Math.abs(
(
(
(Double.parseDouble(x[0]) * Double.parseDouble((y[1])))
+ (Double.parseDouble(y[0]) * Double.parseDouble((z[1])))
+ (Double.parseDouble(z[0]) * Double.parseDouble((x[1])))
)
-
(
(Double.parseDouble(z[0]) * Double.parseDouble(y[1]))
+ (Double.parseDouble(y[0]) * Double.parseDouble(x[1]))
+ (Double.parseDouble(x[0]) * Double.parseDouble(z[1]))
)
) / 2
);
System.out.printf("%.2f\n", result);
}
}
공식 명은 따로 모르겠다
사각형을 그리고 n 만큼의 숫자가 있을 때 어떤식으로 증가하는지 패턴을 확인해보다가
1 ~ n 만큼 각 제곱의 합이 일치하는것을 확인
import java.io.*;
class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
long input = Long.parseLong(br.readLine());
long squareNumber = 0;
for (long i = 1; i <= input; i++) {
squareNumber += i * i;
}
System.out.println(squareNumber);
}
}
2의 제곱수 검증은 &(AND 연산자) 를 이용하여 간단히 해결 가능
2 = 0010, (-1) 1 = 0001
4 = 0100, (-1) 3 = 0011
8 = 1000, (-1) 7 = 0111 ... 이 패턴을 이용하여 알고리듬 문제 해결
import java.io.*;
class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int lemNumber = Integer.parseInt(br.readLine());
String[] memory = br.readLine().split(" ");
int brokenNumber = 0;
StringBuffer sb = new StringBuffer();
for (int i = 0; i < lemNumber; i++) {
if ((Integer.parseInt(memory[i]) & (Integer.parseInt(memory[i]) - 1)) != 0) {
brokenNumber++;
if (sb.length() != 0) {
sb.append(" ");
}
sb.append(i + 1);
}
}
System.out.println(brokenNumber);
if (brokenNumber != 0) {
System.out.println(sb);
}
}
}