공부/Java 복습 21

Java HashSet, Stream, for문을 통한 중복제거 방법

자바를 배워가며 중복제거를 꽤나 여러번 했었는데 중복제거할때의 프로그램의 성능과 그 방법들에 대해서는 자세히 정리해본적이 없는것 같다. 그래서 이참에 중복제거를 하는 여러 방법들과 성능을 측정해보았다. 꽤나 많은 양의 데이터 중복제거를 할때에 속도를 측정해보기위해 List에 많은 양의 과일을 담아주었다 무려 100000000개의 과일이다.... 내 생각에는 많은양 같으나 실제로는 적은양일지도 모르겠다. (코린이라 이부분은 잘 모르겠다 실무에 나가면 실제로 얼마나 많은양의 데이터를 처리하는지에 대해서는...) 시간측정은 currentTimeMillis()를 이용하여 진행하였다. 방법1 : 해쉬셋(HashSet)을 이용한 중복제거 Set은 중복을 허용하지 않는 객체이므로 List에 있는것을 Set에 다시 담..

공부/Java 복습 2021.09.28

Java 문자열을 뒤집는 4가지 방법 + 시간효율

문자열을 4가지 방법을 이용하여 뒤집어보세요. 문자열을 뒤집는 4가지 방법을 누군가 물어봤다... 뭔가 쉽게 뒤집겠네 라고 생각했지만 당장 떠오른 방법은 빌더를 이용한 방법과 charAt을 이용한 방법만이 머리에 떠올랐다 그래서 뭔가 재미있겠다 싶어 공부해보았고 어느 방법이 가장 속도가 빠른지도 궁금하여 체크해 보았다. (프로그램의 시간 성능을 측정하는 방법은 간단한 내용이지만 따로 다루도록하겠다.) 시간을 구하는 방법은 System.currentTimeMillis();를 사용하면 밀리초 단위로 시간을 구해지는데 이 방법으로는 코드가 너무 짧아 시간이 구해지지않아 더 자세한 시간을 구하기 위해 nanoTime() 메서드를 이용하여 구하였다. 첫 번째 방법은 charAt()을 이용한 방법이다. for문을 ..

공부/Java 복습 2021.09.26

Java ConvertedSecond

초를 입력받으면 년/일/시간/분/초로 변환하여 출력해보세요 ※ 단, 필요없는 단위는 출력하지 말 것 ex: 0년 0일 13시간 0분 5초인 경우 -> 13시간 0분 5초만 나와야 함 1. 스캐너를 이용하여 유저에게 초를 입력받는다. 2. seconds배열을 만들어 그 안에는 년,일,시,분 을 구할 수 있는 계산식을 넣어두고 seconds 배열에 담긴 식들을 유저가 입력한 숫자와 나누고 나누어진 값을 converted에 담아준다. second %= seconds[i] 를 해주는 이유는 예를들어 분을 구할때에 한시간은 3600초로 이루어져있는데 5000이라는 값이 들어왔을때에 5000/60 을 하게되면 정확한 분의 값을 구할수 없게되기 때문이다. 그렇기 때문에 한번 계산식의 계산이 끝날때마다 허용범위 이상의..

공부/Java 복습 2021.09.25

Java checkWord

사용자로부터 단어를 하나 입력받고 첫 번째 글자가 영어이면서 마지막 번째 글자와 일치하면 OK"를 출력하고 일치하지 않으면 "NOT OK"를 출력해보세요 대문자 소문자 같은것 허용하기. 1. 사용자에게 단어를 입력받을때에 대문자 소문자를 동일시 하기위해 toLowerCase()를 이용해 소문자로 변환한다. 2. first에는 문장의 첫번째 단어를 charAt()을 이용해 char형으로 담아준디 3. last도 first와 마찬가지로 담아주는데 단어를 0번부터 체크하기때문에 -1을 해줘야한다 4. 삼항문을 이용하여 check는 first와 last가 같다면 ok 아니라면 not ok를 담아주고 출력하여준다.

공부/Java 복습 2021.09.24

Java DiscountDay

어떤 옷가게에서 할인 행사를 짝수번째 목요일마다 진행한다고 한다. 년도를 입력하면 해당 년도의 모든 할인 날짜를 출력해주는 프로그램을 만들어보세요. [printEventOfYear()] 해당년도의 짝수번째 목요일을 파악하여 총 이벤트 일수를 출력하여주는 메소드 1. SimpleDateFormat을 이용하여 날짜의 원하는 출력 형태를 정해준다 2. while문을 통하여 짝수번쨰 목요일이 몇번 나오는지 체크하여주는데 while문의 반복 조건은 사용자가 입력한 년도와 이벤트에 해당하는 년도가 같을때까지인데 이벤트에 해당하는 년도는 반복문이 돌때마다 일수에 7일씩 더해주기 때문에 2020년을 입력받았다면 2021년이 되는순간 while문이 정지되는 것이다. 3. if문을 통하여 짝수번째 목요일을 찾아준다. 첫번..

공부/Java 복습 2021.09.23

5DiceGame 자바

랜덤으로 5개의 주사위를 굴린 다음에 주사위의 결과를 통해 다음을 구분하는 클래스를 만들어보세요 1. 풀하우스 (같은 눈이 2개 + 3개) (11666/22333/55252) 2. 스몰 스트레이트 (1234/2345/3456) 3. 라지 스트레이트 (12345/23456) 4. 4 다이스 (같은 숫자 4개) 5. 5 다이스 (같은 숫자 5개) final static int MAX_DICE_NUM 과 DICE_SIZE는 다이스에 가장 큰 숫자가 6인것과 5개의 주사위를 굴리는것은 변하지 않기때문에 final로 선언하였다. [생성자] 생성자에는 배열의 인덱스값과 랜덤 메서드를 선언해준다. [roll()] 메서드 랜덤 숫자 5개를 dices배열에 넣어준다. [printDice()] 메서드 roll() 메서드에..

공부/Java 복습 2021.09.12

Java 학생 만들기

문제 학생 100명을 만들어 평균점수가 가장 높은 학생을 만들어주세요. [student] 클래스는 학생을 정보를 생성할 클래스이다. 1. 학생의 이름은 랜덤이며 [name()] 메서드에서 first_name과 last_name을 합쳐서 리턴하여준다. 2. 점수는 랜덤이며 [ran()]메서드를 만들어 랜덤으로 각각의 점수를 부여해준다 3. 총합 점수는 [sums()]메서드를 이용하여 구해준다 4. 평균 점수인 avg는 sum / 3(과목수) 를 하여 구해준다 5. 다음으로는 String.format을 이용하여 학생들을 메인에서 찍어냈을때에 이름: ??? 국어: ???....과 같은 형식으로 나오게 해준다 [studentClass] 클래스는 학생들을 100명을 만들어 평균점수가 가장 높은 학생을 확인하는 클..

공부/Java 복습 2021.09.09

자바 학생 등급 출력하기 if문과 삼항연산자 이용 2가지 방법

점수를 입력받으면 점수에 해당하는 알맞은 등급을 출력해주는 프로그램을 만들어보세요. 90점 이상 : A 80점 이상 : B 70점 이상 : C 60점 이상 : D 그 외 : F ※ 유요한 점수는 0 ~ 100점 입니다. [if문 버전] 1. while문을 이용하여 학생의 점수가 0점과 같거나 크고 100점과 같거나 작은지 검사를 해주는데 조건을 잘 보면 0이하 이거나 100이상 일 경우에 와일문이 계속 돌며 0이상 100이하의 숫자가 들어오면 while문이 false가 되며 반복이 멈추고 score에 조건에 맞는 점수가 들어가게된다 2. if문을 이용하여 90과 같거나 클경우 A등급 으로 부터 시작하여 else if로 60과 같거나 클때까지를 조건으로 넣어두고 60점 미만일 경우에는 F등급이 되는것이다 ..

공부/Java 복습 2021.08.25

Java 정규 표현식을 이용한 올바른 이메일 형식 찾기와 중복 제거

[조건] 다음 문자열에서 올바른 형식의 이메일만 적절한 컬렉션에 저장해 보세요 (올바른 이메일이 총 몇 개인지 세어보세요 중복되는 이메일은 무엇인지 찾아보세요. 약 900개가량 되는 이메일 정보가 들어있습니다. email이 pattern1의 형식에 일치하는 값과 중복되는 이메일 값을 담기 위해 ArrayList emails와 overlep(중복)을 생성하여줍니다 1. Pattern.compile()에 내가 찾아야 할 형식을 Matcher에 넣어 준다. 2. find() 패턴이 일치하는 경우 true를 반환하고 그 위치로 이동 일치하는 게 없을 경우 false반환, while문에 find를 조건식으로 줘서 일치하는게 없을 때까지 반복한다. 3. group()을 이용하여 매칭 된 부분을 반환 4. 지정한 형..

공부/Java 복습 2021.08.19

Java 차량 5부제

차량 5부제 만들기 조건 2018년 9월 1일 부터 끝번호차량 출입제한 월 1,6 화 2,7 수 3,8 목 4,9 금 5,0 공휴일 제외 및 장애인,유아동승,경차 등 제외 차량 5부제를 검사해주는 프로그램을 만들기에 앞서 랜덤으로 차량을 만들 클래스를 간단하게 설명한다 [VehicleDeductibleCar()] 에서 사용할 랜덤한 차량을 만들어주는 클래스이다 cars배열에 차량의 종류를 담아주고 except_car배열에 제외차량을 담아준다 number변수에 랜덤하게 각 차량의 번호를 넣어주는데 random클래스에 nextint함수를 이용하여 0~9999번까지 랜덤하게 번호를 부여해줄것이다. 이때에 랜덤하게 0~9999번이라면 0번차량 100번차량 등 1,2,3자리 수의 번호의 차량이 나올수도 있기 때문..

공부/Java 복습 2021.08.16
728x90