목록java (45)
Welcome! Everything is fine.
📌 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📌 풀이 달리기 경주에서 선수들이 추월한 결과를 반환하는 문제이다. 이름이 불리는 대로 간단하게 swap만 하면 되는 줄 알았지만 처음 작성한 코드에서 시간 초과가 났다. 처음에 주어지는 players의 최댓값이 50,000, callings의 최댓값이1,000,000 이므로 최악의 경우 대략 500억번 정도 돌아간다고 보면 된다. indexOf()로 이름이 불린 선수의 인덱스값을 찾았는데, 인덱스 값을 더 빠르게 찾을 수 있는 방법이 필요했다. 이 문제는 해시를 사용해야 한다는 힌트를 얻어 풀 수 ..
📌 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📌 풀이 연속적으로 등장하는 숫자를 순서를 유지한 채 제거해야하는 문제였다. stack을 사용하여 문제를 풀었다. arr 배열을 순회하면서 아래의 경우에만 stack에 원소를 넣는다. stack이 비어있는 경우 stack의 맨 위의 원소가 지금 넣으려는 arr 배열의 원소와 다른 경우 반환타입에 맞춰 int 배열에 다시 옮겨 담는다. 단, LIFO(Last In First Out) 구조인 stack의 특성을 고려해 배열의 맨 뒤부터 채워넣는다. 📌 stack 사용법 stack은 다음과 같이 선언한다...
📌 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📌 풀이 처음에는 HashMap으로 풀어보려다가 준 선물, 받은 선물, 선물 지수만 map에 넣고 헤맸다. 선물을 주고 받은 기록을 어떻게 비교할 지 감이 오지 않았다. 결국 정답 코드를 보고 이해한 후 다시 분석해 정리해보았다. 먼저 문제의 규칙을 요약하자면 다음과 같다. 선물을 주고 받은 적이 있고, 주고 받은 수가 다르다면 더 많은 선물을 준 사람이 선물을 받는다. 선물을 주고 받은 적이 없거나, 주고 받은 수가 같다면 선물 지수(준 선물 수 - 받은 선물 수)를 비교해 선물 지수가 큰 사람이 ..
자바에서 배열을 복사하기 위한 방법은 다음과 같다. 메서드를 사용하는 것이 for문보다 더 빠르다고 하니 메서드를 배워보자! for문 Arrays.copyOf() Arrays.copyOfRange() Arrays.copyOf(원본_배열, 복사할_길이) Arrays.copyOf()는 배열의 길이를 지정해 복사할 수 있는 메서드이다. 배열의 처음부터 length 길이만큼의 요소를 복사해 새로운 배열을 생성한다. int[] array = {1, 2, 3, 4, 5}; int[] copy = Arrays.copyOf(array, 3); // {1, 2, 3} Arrays.copyOfRange(원본_배열, 시작_인덱스, 끝_인덱스) Arrays.copyOfRange()는 시작 인덱스와 끝 인덱스를 정해 배열의 일..
자바에서 java.lang.String 클래스의 다음과 같이 세 가지 메서드를 이용해 문자열을 변경할 수 있다. replace() replaceAll() replaceFirst() replace(CharSequence target, CharSequence replacement) replace() 메서드를 이용해 특정 문자열을 원하는 문자열로 대체할 수 있다. 정규식을 인자로 받을 수 있는 replaceAll()이나 replaceFirst() 와 달리 replace()는 대체할 문자열이 단순한 문자열일 경우 사용된다. String original = "Hello, World!"; String modified = original.replace("Hello", "Hi"); // 모든 Hello라는 문자열을 H..
자바에서 특정 부분 문자열을 추출하기 위해 java.lang.String클래스의 substring() 메소드를 사용할 수 있다. 해당 메소드는 다음과 같이 두 가지 버전이 있다. public String substring(int beginIndex) public String substring(int beginIndex, int endIndex) substring() 메소드는 원본 문자열을 변경하지 않고 새로운 문자열을 생성한다. substring(int beginIndex) beginIndex부터 맨 끝까지의 문자열을 리턴한다. public class SubstringExample { public static void main(String[] args) { String originalString = "H..
📌 FCM(Firebase Cloud Messaging) 이용해 푸시 메시지 보내기 Tools - Firebase 에 들어가서 Cloud Messaging - Set up Firebase Cloud Messaging을 클릭한다. 그럼 다음과 같이 해야할 것들이 나온다. Firebase와 프로젝트는 연결이 되어있으므로 생략하고, Add FCM to your app 버튼을 누르면 아래와 같은 창이 뜬다. Accept Changes를 누르고 잠시 기다리면 완료된다. 다음 코드를 복사해 MainActivity의 OnCreate() 밑에 넣는다. 파이어베이스 참고문서에서 '현재 등록 토큰 가져오기'에서도 코드를 복사할 수 있다. FirebaseMessaging.getInstance().getToken() .add..