java 7

[프로그래머스] 시저 암호 풀이 - JAVA

📍LEVEL1 : 시저 암호 유형 : 구현 📍풀이방법 입력값이 String 이고, 한 자리마다 n씩 움직여서 최종 결과값을 내야한다. 1) String의 한 자리씩 확인을 해야한다. -> char를 사용해야겠다고 생각. 2) 대소문자를 함께 입력받는다. -> 대소문자 구분을 해줘야겠다고 생각. 3) char는 int형으로 변경할 수 있고, 계산을 할 수 있기 때문에, 입력받은 n 과 각 자리 char 값을 더해준다. 4) z 또는 Z 를 넘어가는 범위는 있일 수 없기 때문에 a~z의 개수(=26)를 빼준다. (z or Z 범위를 벗어나게 된다면) 5) 영어 알파벳을 제외한 다른 문자(공백)도 들어갈 수 있기 때문에 예외로 처리해준다. 📍코드 class Solution { public String so..

[JAVA] 1주차 - JVM은 무엇이며 자바 코드는 어떻게 실행하는 것인가

👻 자바가 만들어지게 된 배경 자바는 기본적으로 C/C++과 비슷하지만 C/C++을 사용하면서 나타나는 복잡하고 안전하지 않은 문제를 해결하고자 했다. 초기에 자바가 지향한 바로는 multiple host architecture 와 secure으로 한 번 쓰고 어느 곳에서도 실행할 수 있는 것을 목표로 했다. (Write Once Run Anywhere) 자바로 개발된 프로그램은 CPU나 운영 체제의 종류에 관계없이 JVM을 설치할 수 있는 시스템에서 어디서나 실행할 수 있으며 웹 애플리케이션의 특성과 맞아떨어져 폭발적인 인기를 끌게 되었다. 🙄 JVM이란 무엇인가? 정의 : 자바 가상 기계(JVM : Java Virtual Machine)로서 자바 바이트코드를 실행할 수 있는 주체 설계자 : 제임스 고..

LANGUAGE/JAVA 2021.10.10

[백준] 1068번 트리

[백준] 1068번 트리 문제 설명 입출력 문제풀이 방법 트리가 주어지고, 삭제할 노드에 연결되어 있는 노드를 모두 제거한 후 리프노드의 개수를 출력하면 된다. 1. 주어진 노드가 어떤 루트 노드와 연결되어 있는지 정보를 저장할 arr 배열 하나를 선언한다. 2. 삭제할 노드 R 을 입력받은 후 delete(R) 을 통해 R에 연결되어 있는 노드를 모두 삭제한다. - 삭제가 된 노드인지를 판별하기 위해 boolean값의 node 배열을 사용했다. - 삭제가 된 노드면 node[i]의 값을 true로 바꾸게 된다. - 삭제를 하는 방법은 BFS방법을 통해 연결된 것을 모두 지우도록 했다. 3. 삭제가 끝나면 리프노드를 찾아야 한다. - 삭제되어진 노드는 제외하고 ( 즉, node가 true인 것은 제외 )..

알고리즘/백준 2020.10.27

[프로그래머스] 쿼드압축 후 개수 세기 - JAVA

[프로그래머스] 쿼드압축 후 개수 세기 - JAVA 문제 설명 풀이과정 1. 구역을 정해서 그 구역이 0으로 채워있으면 0으로 압축, 1으로 채워져있으면 1로 압축하는 과정 1-1. 만약, 모두 똑같은 숫자로 되어 있다면 zeroCnt or oneCnt를 증가시킨다. 1-2. 압축되지 않는다면 2번으로! 2. size/2 만큼 잘라서 재귀호출을 하여 1번의 과정을 반복한다. 2-1. size/2를 자르고 포인트는 dx, dy를 아래와 같이 설정하는 것이다. static double[] dx = {0, 0, 0.5, 0.5}; static double[] dy = {0, 0.5, 0, 0.5}; 내가 놓쳤던 부분 - 전체가 똑같은 0이나 1로 채워져있는 경우를 반영해주지 않았다! 소스 코드 import j..

[프로그래머스] N으로 표현

[프로그래머스] N으로 표현 문제 설명 [ 생각하기 ] 1. N의 숫자만을 사용하여 사칙연산을 할 수 있고, 그 결과가 number 이 나오는 최소한의 N의 개수를 구하는 문제이다. 2. N의 개수의 범위가 1~8, N을 1~8번 사용해서 만들 수 있는 수 중 number이 나오는지 파악하면 된다. (N = 5라고 가정) 5의 개수가 1 5 5의 개수가 2 55 5+5, 5-5, 5*5, 5/5 5의 개수가 3 555 [5의 개수가 1] (사칙연산) [5의 개수가 2] [5의 개수가 2] (사칙연산) [5의 개수가 1] 5의 개수가 4 5555 [5의 개수가 1] (사칙연산) [5의 개수가 3] [5의 개수가 2] (사칙연산) [5의 개수가 2] [5의 개수가 3] (사칙연산) [5의 개수가 1] 이게 ..

알고리즘 2020.06.18

[JAVA] 기본 입출력(Scanner vs BufferedReader 차이)

자바를 처음 배우게 되었을 때, 대부분 Scanner를 사용했을 것이다..! 그러나, 최근에 알고리즘 공부를 하다가 BufferedReader의 존재를 알게 되었다! 이것들의 차이를 보니 속도면에서 상당히 큰 차이를 가지고 있다고 한다. Scanner 사용방법 Scanner sc = new Scanner(System.in); BufferedReader 사용방법 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 1. int값을 입력받을 때 - N = Integer.parseInt(br.readLine()); 2. String을 입력받을 때 - String s = br.readLins(); StringTokenizer 사용하는..

LANGUAGE/JAVA 2020.01.31