안녕하세요 :)오늘은 JAVA의 Scanner를 사용하며 부딪힌 문제에 대해 공유해보고자 합니다.저는 요새 알고리즘에 빠져 있는데요.어느 날은 너무 머리가 아파서 낮은 레벨의 문제를 풀고 쉬려 했습니다.저는 아래의 백준 2751 문제... 실버V 문제(비교적 난이도가 낮은 문제)를 빠르게 풀고 쉬려고 했으나...계속해서 시간 초과라는 결과를 맞이했습니다 :(... ㅠㅠ어느 부분에서 시간을 잡아먹었지?저는 다음과 같은 순서로 최적화를 진행해봤습니다.변수 줄이기정렬 방식 최적화(기존에 사용한 O(n^2)의 시간 복잡도를 가진 방식을 O(nlogn)의 시간 복잡도를 가진 정렬 알고리즘으로 변경)결과는... 시간 초과도대체 뭐가 문제지?생각하다, "설마.. 입출력 방식이 문젠가?"라는 생각이 들었습니다.알린이(..
안녕하세요!다들 뭐하고 지내시나요?저는 요새 백준 온라인 저지를 통한 코딩 테스트에 매료되어 있습니다 :)백준 온라인 저지 문제를 풀다보니 조건 중 "~~보다 작거나 같은 자연수이며, 중복되지 않는다"와 같은 조건이 많았습니다.여기서 "~~보다 작거나 같은", "자연수이며"와 같은 조건은 부등호, 자료형으로 충분히 해결할 수 있는 조건이지만, "중복"에 관한 것은 몇번의 반복문 혹은 조건문으로 떡칠해야 가능하죠...하지만 Java에서는 중복을 허용하지 않는 자료형을 이미 구현해놨습니다.이번에는 '중복을 허용하지 않는 자료형' Set에 대해 알아보려 합니다.Set?먼저 Set에 대한 개념을 알아보겠습니다.Set은 '중복을 허용하지 않는' 특징 포함하여 아래의 특징을 갖고 있습니다.중복을 허용하지 않는다!원..
Spring 프레임워크로 개발할 때, 테스트 케이스 작성은 중요합니다. 테스트 케이스는 우리가 작성한 코드가 의도한 대로 동작하는지 확인해주니까요. 이번 포스팅에서는 Spring에서 자주 사용하는 given - when - then 구조에 대해 알아보겠습니다.given - 뭔가가 주어졌을 때테스트 케이스 작성의 첫 번째 단계는 given입니다. 이 단계에서는 테스트에 필요한 사전 조건이나 준비 작업을 설정합니다. 주어진 조건이 무엇인지 명확히 정의하고, 테스트에 필요한 데이터를 설정합니다. 예를 들어, 데이터베이스에 특정 값이 있어야 하거나, 특정 객체가 특정 상태여야 하는 경우 등이 여기에 해당하죠.// given - 사전 조건 설정 User user = new User(); user.setName("..
2024.04.21 - [Programming/Java] - [Java] String, 리터럴 객체의 메모리 할당(1)이 글을 읽기 전에, 위 [Java] String, 리터럴 객체의 메모리 할당(1) 편을 읽고 와주시기 바란다.불변의 String..?String은 JavaScript의 const와 같이 한 번 할당된 값을 변경할 수 없다.아래의 예시를 보면public class StringTest2 { public static void main(String[] args) { String std = "고길동"; System.out.println(std.hashCode()); // print: 111222333(예시) std = std + "소프트웨어 개발 전공"..
우선, String. 즉, 리터럴 객체에 대해 알아보자리터럴 객체?리터럴 객체라는 것은 여러분이 자주 사용했을 String이라는 타입의 변수를 생성하는 것이다.String name = "홍길동";메모리 할당 방식String도 다른 타입과 동일하게 '클래스'이다.그런데 String 클래스는 특이하게도 객체를 생성하는 방법이 두 가지이다.String Class의 두 가지의 객체 생성 방식1. new String첫 번째는 객체 생성 연산자인 new를 사용한 방법이다.(예시)String name1 = new String("홍길동");String name2 = new String("홍길동");if(name1 == name2) System.out.println("두 주소가 같다");else System..