자바
-
[네이버클라우드 캠프/3주차] 문자열 중 가장 많이 등장하는 문자 구하기네이버클라우드 캠프 | BE/Java 과제 2023. 4. 12. 14:38
지난 과제를 풀며, 어렵다고 느꼈던 문제 혹은 새로운 깨달음을 준 문제들에 대해 블로그 글로 정리하고 있습니다. '문제를 풀었을 때 (그때그때) 블로그 글로 작성해 두면 더 좋았을 텐데..'란 후회와 속상함이 생겼지만, Map과 Entry를 사용하는 방법에 대해 이해할 수 있게 만들어준 과제를 공유하고 싶어 블로그 글을 작성합니다. ❓문제 : 문자열을 입력받고, 가장 많이 등장하는 문자와 그 개수를 출력하세요. public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("문자열 입력 > "); String str = sc.nextLine(); // 각 문자의 ..
-
[네이버클라우드 캠프/2주차] 반올림 하기네이버클라우드 캠프 | BE/Java 과제 2023. 4. 11. 17:56
❓문제 : 16.459를 소수점 둘째 자리까지 반올림해서 출력하세요. 자바를 사용하며 수학 계산과 관련된 문제를 풀기 위해 Math 클래스를 종종 사용하게 됩니다. 그중 round(반올림) 메서드와 random(난수 발생) 메서드를 주로 사용하게 되는데요. random 메서드는 이젠 어느 정도 익숙해져 풀이하기 편하지만, round 메서드는 익숙해지지 않습니다.. 이번 블로그 글을 통해 round 메서드에 대한 개념과 함께 사용 방법을 익힐 수 있도록 하겠습니다. (함께 해봅시다!) 1. round 메서드 round 메서드는 double 타입의 입력 값을 받아, 해당 값을 반올림한 long 타입의 결과를 반환합니다. public static long round(double a) 아래의 예시를 통해 반올림..
-
[네이버클라우드 캠프/2주차] 클래스의 생성과 배열 관련 메서드네이버클라우드 캠프 | BE/Java 과제 2023. 4. 11. 14:59
과제에 대한 블로그 글은 정말 오랜만이네요. 앞으로 과제를 풀며 정리하고 싶었던 내용들에 대해 꾸준히 정리해 나가도록 하겠습니다. ❓문제 : 아래의 static 메서드를 가지는 ArrayUtility 클래스 생성하고 사용하시오. static int[] remove(int[] arr1, int[] arr2); // arr1에서 arr2배열의 숫자를 모두 삭제한 새로운 배열 리턴 ArrayUtility 클래스를 생성하여 주어진 메서드를 static으로 생성해 보겠습니다. 메인에서 이를 구현하는 모습까지 확인하고 세부적으로 설명하도록 하겠습니다. public class ArrayUtility { public static int[] remove(int[] arr1, int[] arr2) { // 임시 배열 생성..
-
[Java] 게터/세터(Getter/Setter)를 사용하는 이유IT Study/컴퓨터 기초 2023. 4. 10. 16:58
1. Getter/Setter 클래스의 멤버 변수를 public으로 선언하면, 해당 멤버 변수는 어디서든 직접 접근이 가능합니다. 그러나 멤버 변수에 직접 접근하는 것은 문제가 될 수 있습니다. ❓ 왜 클래스의 멤버 변수에 직접 접근하는 것이 문제가 될까요? 왜냐하면 클래스의 멤버 변수에 직접 접근한다는 것은 외부에서 멤버 변수의 값을 변경할 수 있다는 의미로, 외부에서 클래스의 멤버 변수에 직접 접근하여 값을 변경하면 해당 클래스는 의도치 않게 동작할 수 있습니다. public이 아닌 *private이라는 키워드로 멤버 변수가 선언되어 있더라도 클래스의 외부에서 접근이 가능하게 되면 해당 클래스 내에 구현이 변경되었을 때 다른 코드에 영향을 줄 수 있습니다. *private : 접근 제한자 중 하나로,..
-
[Java] 스레드 (Thread)IT Study/컴퓨터 기초 2023. 4. 8. 17:47
1. 스레드란? 컴퓨터의 프로그램이 동시 실행될 수 있도록 하는 것을 멀티 스레딩이라고 합니다. 스레드는 실행되는 프로그램에서 개별적인 흐름을 만든 것으로, 프로세스 안에서 실행되는 하나의 실행 흐름입니다. 여러 개의 스레드는 하나의 프로세스에서 동시에 실행될 수 있으며, 서로 공유되는 자원을 이용할 수 있습니다. 1-1. 스레드와 프로세스 구분 스레드 프로세스 정의 프로세스 안에서 실행되는 실행 흐름 중 하나 실행 중인 프로그램 자원 공유 한 프로세스 내 스레드는 메모리 등의 자원 공유 독립적으로 OS에서 자원 할당 받음 종료 프로세스 내 타 스레드가 종료될 때까지 대기 종료 시, OS에서 자원 회수 실행 흐름 (순차적) 한 프로세스 내 스레드는 서로 다른 실행 경로를 가지나, 실행 시간 중첩 독립적 ..
-
[Java] 열거형 (Enum)IT Study/컴퓨터 기초 2023. 4. 6. 15:21
1. 열거형이란? 열거형은 서로 연관된 상수들의 집합을 나타내는 것으로, 여러 개의 상수 중 하나를 선택해야 하는 경우 유용하게 사용할 수 있습니다. 우리는 열거형을 통해 상수의 이름만으로 해당 상수가 어떤 값을 나타내는지 확인할 수 있기 때문에 가독성이 높아집니다. 2. 열거형의 선언 2-1. 간단한 열거형 선언 enum 키워드를 사용하여, 상수를 쉼표로 구분하여 선언합니다. (열거형 상수는 대문자로 작성하는 것을 권장합니다.) enum 열거형명 { 상수명1, 상수명2, 상수명3... } enum Weekday { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY } public class Main { public static void ma..
-
[Java] StringTokenizerIT Study/컴퓨터 기초 2023. 3. 15. 14:16
BufferedReader를 이용하여 입력을 받을 때, 자주 보이는 클래스가 있습니다. 그것은 바로 StringTokenizer StringTokenizer 클래스를 사용하여 문자열을 *Token 단위로 구분하여 만들 수 있습니다. *Token(토큰) : 분리된 문자열 조각 📌 사용 방법 StringTokenizer(String str) 띄어쓰기 기준으로 문자열 분리 StringTokenizer(String str, String delim) 구분자(delim) 기준으로 문자열 분리 StringTokenizer(String str, String delim, boolean returnDelims) 구분자(delim) 기준으로 문자열 분리 시 boolean returnDelims true 구분자도 문자열 토큰..
-
[Java] BufferedReader와 BufferedWriter (입출력 속도)IT Study/컴퓨터 기초 2023. 3. 15. 10:44
백준 알고리즘을 풀며 Scanner와 System.out.println() 사용할 때, 📌 시간 초과가 나는 이유는 무엇일까요? - Java 입력 속도 6위에 자리매김한 BufferedReader와 Integer.parseInt와 비교하여 Scanner를 사용할 때에는 약 7배 정도 느려집니다. - Java 출력 속도 7위에 위치한 BufferedWriter와 bf.write()와 비교하여 System.out.println()의 출력 속도는 약 30배 이상 느리다는 것을 확인할 수 있습니다. 버퍼는 데이터를 전송하는 동안 일시적으로 데이터를 보관하는 임시 메모리 영역으로, 입출력 속도 향상을 위해 사용할 수 있습니다. 이를 위해 우리는 BufferedReader - BufferedWriter를 사용할 수..