본문 바로가기

분류 전체보기223

[알고리즘 문제풀이] 프로그래머스 - 빛의 경로 사이클 / JAVA(자바) https://programmers.co.kr/learn/courses/30/lessons/86052 코딩테스트 연습 - 빛의 경로 사이클 각 칸마다 S, L, 또는 R가 써져 있는 격자가 있습니다. 당신은 이 격자에서 빛을 쏘고자 합니다. 이 격자의 각 칸에는 다음과 같은 특이한 성질이 있습니다. 빛이 "S"가 써진 칸에 도달한 경우, 직진 programmers.co.kr /** 3차원 풀이 또는 2차원 + 비트마스크 1. 최대 500 * 500 배열 존재 2. 칸마다의 조건에 따라 4방향 돌면서 이동 3. 들린 칸은 체크할건데, 어떤 방향에서 들렸는지를 체크(bit mask 사용할 예정) 4. 다음 갈곳은 %연산으로 처리 5. 같은 방향에서 다시 들리면 해당 사이클을 순환사이클로 몇개 들려서 왔는지 .. 2022. 2. 28.
[Java] 기본형(Primitive Type) 2022.02.25 - [Language/Java] - [Java] 변수(Variable) 2022.02.25 - [Language/Java] - [Java] 기본형(Primitive type) & 상수와 리터럴(constant & literal) 논리형(boolean) 논리형엔 자료형이 'boolean' 한가지 밖에 없다. boolean형 변수에는 true, false 값만 저장 가능하고, 기본값(default)는 false이다. boolean형은 대답과 스위치 등의 논리구현에 주로 사용된다. 그렇기때문에 true,false 2가지의 값으로 표현하면 되므로 1bit만으로 충분하지만, 자바에서 데이터를 다루는 최소 단위는 byte(8bit)이기에, boolean 크기는 1byte이다. boolean po.. 2022. 2. 27.
[Java] 실수형의 정밀도, 고정소수점과 부동소수점 실수형의 정밀도 float은 4byte로 이루어져있고, 4byte의 정수로는 '약 ±2x10^9'의 값 밖에 표현할 수 없었는데, 어떻게 3.4 x 10^38 과 같은 큰 값을 표현할 수 있는가? 그 이유는 실수는 값을 저장하는 방식이 다르다. 정수형 int : 1 + 31 = 32(4byte) S(1) 31 bit 실수형 float : 1 + 8 + 23 = 32(4byte) S(1) E(8) M(23) 정수형은 부호와 값으로 이루어져있지만, 실수형은 '부호(S), 지수(E), 가수(M)' 세 부분으로 이루어져 있다. 즉, '2의 제곱을 곱한 형태로 저장하기 때문에 이렇게 큰 범위의 값을 저장하는 것이 가능하다. 그러나 정수형과 달리 실수형은 오차가 발생할 수 있다는 단점이 있다. 그래서 실수형에는 표.. 2022. 2. 27.
[알고리즘 문제풀이] 프로그래머스 - 2개 이하로 다른 비트 / JAVA(자바) https://programmers.co.kr/learn/courses/30/lessons/77885 코딩테스트 연습 - 2개 이하로 다른 비트 programmers.co.kr /** 1. f(x) 는 x보다 큰 수 중 비트가 1~2개사이에서 다른 것 중 제일 작은 수 2. 현재 수의 비트 중에서 제일 작은 꺼져있는 비트 찾기 2-1) 전체 켜진 비트와 현재 비트를 xor연산 비트 만들고, 2-2) 만들어진 비트 중 가장 최소로 켜진 비트를 찾으면 그게 제일 작은 꺼져잇는 비트 3. 꺼져있는 비트를 키고, 이게 최소비트가 아니면 오른쪽꺼는 끈다. 3-1) 꺼져있는 비트를 키는건, 찾은 비트를 합집합하면 됨. 3-2) 바로 오른쪽꺼를 끄는건 2진수니까 /2로 하면 바로 한칸 옆 오른쪽임. ~를 통해 해당 .. 2022. 2. 27.
[알고리즘 문제풀이] 백준 10845 큐 (JAVA코드) https://www.acmicpc.net/problem/10845 10845번: 큐 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net /** * 1. 디큐 구현풀이 * * 2. n개의 명령의 수에 따라 수행 * * 3. 출력 명령문 마다 출력 * */ import java.io.*; import java.util.*; public class Test { public static void main(String[] args) throws IOException{ BufferedReader br = new Buffere.. 2022. 2. 27.
[알고리즘 문제풀이] 백준 9012 괄호 (JAVA코드) https://www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net /** * 1. 올바른 괄호열 찾기 * * 2. stack을 통한 구현 * * 3. t개의 테스트 데이터를 올바른 괄호열인지 "YES", "NO" 반환 * */ import java.io.*; import java.util.Stack; import java.util.StringTokenizer; public class Test { public static void m.. 2022. 2. 27.
[알고리즘 문제풀이] 백준 10828 스택 (JAVA코드) https://www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net /** * 1. n개의 명령의 수가 들어오고, * * 2. stack을 구현하여 명령을 처리 * * 3. pop이나 size나 empty, top은 해당하는 숫자를 출력 * */ import java.io.*; import java.util.Stack; import java.util.StringTokenizer; public class Test { public static voi.. 2022. 2. 27.
[Java]음수의 2진 표현 - 2의 보수 컴퓨터에서의 음수 표현 컴퓨터는 2진수, 비트 단위가 최소단위로 값을 표현할 수 있는데 n 비트라고하면 표현할 수 있는 값의 개수는 2^n개이다. 만약 4비트의 2진수로 양수와 음수를 모두 표현한다고하면 어떻게 할까? 1) 절반씩 양수와 음수로 사용하여 순서대로 증가(부호 절대값 방식) # 2진수 부호있는 10진수 1 0000 0 2 0001 1 3 0010 2 4 0011 3 5 0100 4 6 0101 5 7 0110 6 8 0111 7 9 1000 -0 10 1001 -1 11 1010 -2 12 1011 -3 13 1100 -4 14 1101 -5 15 1110 -6 16 1111 -7 음수를 이렇게 배치하게 되면, 첫번째 비트만 1로 바꾸면 음수가 된다는 장점이 있다. 하지만, 두 수를 더했을 .. 2022. 2. 27.