산술 연산자 어느 프로그래밍 언어에서도 그렇듯 Data Type을 배웠으면 이제 연산에 대해서 배울 차례다. 하지만 연산에 대해서 따로 배울만한 것은 없는 게 사실이다... 😂 우선 기본적인 연산은 아래 예제를 살펴보는 것으로 Pass! // 덧셈 : + System.out.println(1 + 9); // 뺄셈 : - System.out.println(9 - 1); // 곱셈 : * System.out.println(2 * 5); // 나눗셈 : / System.out.println(10 / 5); // 나머지 : % System.out.println(7 % 5); // String의 경우 + 는 연결 연산자로 사용된다. System.out.println("Hello" + " Chany"); 단항 연산..
이번 포스팅에서 알아볼 것은 Java에서의 형 변환이다. 숫자의 Data Type에는 정수와 실수 두 가지가 존재하는 것은 누구나 아는 사실이다. 그러나 여기서 중요한 점은 사람이 정수와 실수를 더하는 것과 컴퓨터가 더하는 것에는 큰 차이가 있다는 점이다. // 정수 200의 bit 값 00000000 00000000 00000000 11001000 // 실수 200.0의 bit 값 01000011 01001000 00000000 00000000 사람에게는 같은 숫자인 200과 200.0을 컴퓨터는 위처럼 전혀 다른 형태로 저장한다. 따라서 컴퓨터가 정수와 실수를 연산할 때는 한 쪽으로의 형 변환이 이루어져야 한다는 것이다. Java는 이러한 형 변환을 자동으로 처리해주는데 이것을 implicit Con..
접근법 문제를 단순화하고 풀고 싶었는데, 이 문제가 브루트포스 단계에 들어간 데에는 이유가 있었다... 모든 경우의 수를 고려해주면 되는데, 체스판의 형태는 흰색과 검은색으로 시작되는 경우 두 가지다. 따라서 흰색과 검은색 체스판을 필터라고 생각하고 입력값으로 주어지는 체스판을 한칸 한 칸씩 움직여보면서 해당 필터와 비교해서 틀린 칸의 갯수를 세어본다. 여기서 서로 일치하지 않는 칸의 수는 다시 칠해야 하는 칸의 수라고 볼 수 있다. 정리하면, 첫 번째 : 흰색과 검은색으로 시작하는 체스판을 우선 만들어 둔다. ( 이하 필터로 명명함 ) 두 번째 : 입력값으로 주어지는 체스판과 두가지 필터를 한 칸 한 칸씩 모든 경우에 대해서 비교해본다. 세 번째 : 비교해보면서 서로 틀린 칸의 수를 Count한다. 네..
접근법 고민을 많이 해봤는데 생각보다 간단한 문제였다. 간단하게 생각해보면 어쨌든 문제에서 얘기하는 무거움이라는 개념은 키와 몸무게 둘 다 큰 사람이다. 또한, 등수를 매길 때 공동 등수가 들어가기 때문에 그냥 자기보다 크고 무거운 사람이 몇 명인지 Count해서 자기 등수만 정해주면 되는 것이다. 🙃 즉.. n명을 n-1번씩 전수 비교해보면 되는 것이다! 풀이 N = int(input()) st_arr = list() for _ in range(N): weight, height = map(int,input().split(' ')) st_arr.append((weight,height)) for i in st_arr: rank = 1 for j in st_arr: if i[0] < j[0] and i[1]..
접근법 생소한 개념이라 문제를 이해하기 어려웠다. 핵심은 가장 작은 생성자를 구해야 한다는 점이다. 입력값 N이 주어졌을 때 생성자를 만드는 규칙에 따라서 가장 작은 숫자부터 차례대로 확인을 하면 편할 것이다. 즉, 생성자를 만드는 규칙은 모든 자리의 수와 해당 숫자를 더했을 때 입력값 N을 만족시키면 되기 때문에 N의 각 자릿수의 최대값은 9로 N ± ( 자릿수 * 9 ) 만큼의 범위만 확인해주면 된다 ! 예를 들어서 256이라는 숫자라고 한다면 각 자리의 숫자는 가장 큰 숫자가 9이므로 256 - 27 = 229 이므로 229부터 차례대로 규칙에 따라 N을 만족하는지 확인하면 된다. 풀이 def constructor(N): minimum = N - len(str(N)) * 9 minimum = 1 i..
이번 포스팅에서는 Java에서 사용하는 기본적인 Data Type에 대해서 알아보자. Java는 효율적인 프로그래밍을 하기 위해서 다양한 형태의 Data Type을 가지고 있다. 우선 들어가기 전에 Data의 크기와 관련해서 가볍게 짚고 넘어가자. Data의 크기 1bit는 0이나 1의 값을 가질 수 있고 byte는 bit 보다 8배 큰 단위다. 그 외에는 모두 1024배씩 커진다. 정수형 Data type 메모리 크기 표현 가능 범위 byte 1 byte -128 ~ 127 short 2 byte -32,768 ~ 32,767 int 4 byte -2,147,483,648~2,147,483,647 long 8 byte -9,223,372,036,854,775,808 ~ 9,223,372,036,854,..