Java

    [Java/프로그래머스] 숫자의 표현

    문제 풀이 (1) 문제 분석하기 이전에 풀었던 문제와 유사하여 같은 방식으로 풀이 2022.10.03 - [📊 Algorithm] - [Java/백준] 연속된 자연수의 합 구하기 #2018 시작 인덱스와 종료 인덱스를 투포인터로 지정하여 접근 투포인터 이동 원칙 연속된 자연수의 합이 입력 받은 값보다 작으면 -> endIndex를 올려주고, sum에서 endIndex를 더해줌 연속된 자연수의 합이 입력 받은 값과 같으면 -> endIndex를 올려주고, sum에서 endIndex를 더해줌, count 올려줌 연속된 자연수의 합이 입력 받은 값보다 크면 -> startIndex를 올려주고, sum에서 startIndex를 빼줌 (2) 슈도코드 작성하기 사용 변수 초기화(sum, count, startInd..

    [Java/프로그래머스] 숫자 문자열과 영단어

    문제 풀이 (1) 문제 분석하기 포함될 수 있는 영단어(zero ~ nine)를 담은 String 배열 생성 배열 길이만큼 for문으로 돌면서 입력 받은 문자열에 해당 영단어가 있는지 확인 → contains() 있다면, 해당 영단어를 i로 대체 → replace() String.contains() 특정 문자열 포함 확인 대상 문자열에 특정 문자열이 포함되어 있는 확인하고, true or false를 반환한다. 대/소문자 구분하여 사용이 가능하다. String.replace(찾을 문자열, 바꿀 문자열) 문자열 대체 대상 문자열을 원하는 문자 값으로 변환한다. 차례대로 찾을 문자열과 바꿀 문자열을 입력한다. replace() vs replaceAll() 둘의 차이점은? replaceAll은 정규식 사용이 ..

    [Java] 객체 지향 프로그래밍

    Chapter 06 클래스 06-1 객체 지향 프로그래밍 06-2 필드 06-3 생성자 06-4 메소드 06-5 인스턴스 멤버와 정적 멤버 06-6 패키지와 접근 제한자 06 클래스 06-1 객체 지향 프로그래밍 시작하기 전에 객체(Object)란? 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 1) 자신의 속성을 가지고 있고 2) 식별 가능한 것을 말한다. ex) [사람] 속성: 이름, 나이 / 동작: 웃다, 걷다 ex) [자동차] 속성: 색깔, 모델명 / 동작: 달린다, 멈춘다 여기서 속성은 필드(filed), 동작은 메소드(method) 객체 모델링(Object Modeling)이란? 현실 세계의 객체를 소프트웨어 객체로 설계하는 것을 말한다. 객체의 상호작용 객체들은 각각 독립적으로 ..

    [Java/프로그래머스] 문자열 내림차순으로 배치하기

    문제 풀이 (1) 문제 분석하기 문자열을 char 형 배열로 변환 → str.toCharArray() char형 배열을 정렬 → Arrays.sort(charArr) char형 배열을 문자열로 변환 → String str = new String(charArr) 역정렬을 위해 StringBuilder로 받기 → StringBuilder strBuil = new StringBuilder(str) reverse() 적용 → String reversStr = strBuil.reverse().toString() (2) 슈도코드 작성하기 문자열을 char형 배열로 변환 char형 배열을 오름차순으로 정렬 StringBuilder로 받아서 내림차순으로 정렬 하도록 reverse() (3) 코드 구현하기 package..

    [TIL] 2주차 알고리즘 코드 리뷰, Java 스터디

    ✍ Today I Learned Java 스터디 시작 새롭게 한 주가 시작되면서 2주차에 접어들었다. 오전 9시 언어 스터디 발제를 시작으로 6주간의 언어 스터디도 함께 하게 되었다. 지난 pre-onboarding 주차 때 공부했던 책 [혼자 공부하는 자바]를 가지고 매일 하루 30분씩 스터디 조원들과 언어에 대한 기본기를 다지는 시간이다. 우리 조는 월~금까지는 개인 공부를 진행하고 토요일에 각자 맡은 챕터를 발표하기로 했다. 나는 바로 이번주에 함께 공부할 6 챕터 - 클래스를 맡아 발표를 진행하게 되었다. 알고리즘 주간과 같이 진행되기 때문에 조금 부담이 되기도 했는데, 확실히 다른 사람에게 설명해주면서 스스로 더 이해하는 스타일이라 즐거운 시간이 될 것 같다! 알고리즘 코드 리뷰 옆 조의 조원분..

    [Java/프로그래머스] 로또의 최고 순위와 최저 순위

    문제 풀이 (1) 문제 분석하기 두 배열에서 같은 숫자만 일치했을 때 → 최저 순위 (같은 숫자 + 0의 개수) 만큼 일치했을 때 → 최고 순위 순위는 간편하게 배열로 만들어 인덱스로 접근 (2) 슈도코드 작성하기 순위를 인덱스로 접근할 수 있게 score 배열 생성 두 배열의 같은 숫자를 세는 same_nums와 0의 개수를 세는 zero_count 변수 선언 for(lottos의 길이만큼) { for(win_nums의 길이만큼) { if(lottos와 win_nums의 i번째, j번째가 같다면) { same_nums 1 올려주기 } } if(lottos의 i번째가 0이라면) { zero_count 1 올려주기 } } 최고 순위는 socre[same_nums + zero_count] 최저 순위는 soc..

    [Java/프로그래머스] 두 개 뽑아서 더하기

    문제 풀이 (1) 문제 분석하기 더하려는 두 개의 수는 서로 다른 인덱스! 이중 for문을 돌면서 배열에서 나올 수 있는 모든 두 수의 합을 HashSet에 저장 HashSet은 중복을 허용하지 않음 HashSet을 ArrayList로 변환하고 오름차순으로 정렬한 후, Array로 변환 (2) 슈도코드 작성하기 HashSet 생성 for(numbers의 길이만큼) { for(numbers의 길이만큼) { if(i와 j가 같지 않으면) { set에 numbers[i]와 numbers[j]의 합 추가 } } } HashSet을 ArrayList로 변환 int형의 배열을 ArrayList의 size만큼 생성 for(list size만큼) { ArrayList 요소를 모두 int형 배열에 담음 } 배열 오름차순..

    [Java/프로그래머스] 같은 숫자는 싫어

    문제 풀이 (1) 문제 분석하기 연속 숫자는 제거하고, 순서는 그대로 유지! Arraylist 생성하여 입력 받은 array와 비교하고 중복 없도록 list에 추가 list를 array로 변환하여 리턴 (2) 슈도코드 작성하기 Arraylist 객체 생성 list에 arr[0] 추가 for(arr 길이만큼) { if(list의 마지막과 요소와 배열이 일치 하지 않으면) { list에 arr[i] 추가 } } } list를 배열로 변환하여 리턴 (3) 코드 구현하기 package algorithm.test15; import java.util.ArrayList; import java.util.List; public class Solution { public static void main(String[] ar..