전체 글 96

[Leetcode 1] Two Sum - 4가지 방식의 풀이

https://leetcode.com/problems/two-sum/ Two Sum - LeetCode Can you solve this real interview question? Two Sum - Given an array of integers nums and an integer target, return indices of the two numbers such that they add up to target. You may assume that each input would have exactly one solution, and you may not leetcode.com Problem 덧셈하여 target을 만들 수 있는 배열의 두 숫자 인덱스를 리턴. 인덱스 값은 유일하게 존재한다. 입력 : n..

Algorithm/Leetcode 2023.12.24

[Leetcode 5] Longest Palindromic Substring - 투 포인터+슬라이딩윈도우

https://leetcode.com/problems/longest-palindromic-substring/ = 0 && k < s.length() && s.charAt(j) == s.charAt(k)) { j--; k++; } if (maxLen < k - j - 1) { left = j + 1; maxLen = k - j - 1; } } public String longestPalindrome(String s) { int len = s.length(); if (len < 2) { return s; } for (int i = 0; i < len - 1; i++) { expand(s, i, i + 1); expand(s, i, i + 2); } return s.substring(left, left + m..

Algorithm/Leetcode 2023.12.21

우테코 프리코스 최종테스트 후기

우테코 6기 4주간의 프리코스 이후 운좋게도 1차 합격 후 최종 코딩테스트를 보게되었다. 결론적으로 말하면 테스트코드를 통과하지 못했고 0점이기에 탈락이 거의 확정된 상태이다.(요구사항도 다 못지켰다) 탈락인데 쓸까말까 고민하다가 멘탈 회복. 그리고 그때 실수 했던 경험을 토대로 다시는 실수를 번복하지 않겠다는 의지와 머리 속에 복잡한 생각을 정리하기 위해 회고해본다. 이번 최종 코딩테스트의 문제는 온-콜 미션이었다.(문제는 아래에) 더보기 문제 https://github.com/woowacourse-precourse/java-oncall-6 GitHub - woowacourse-precourse/java-oncall-6 Contribute to woowacourse-precourse/java-oncal..

[Leetcode 819] Most Common Word - 문자열처리

https://leetcode.com/problems/most-common-word/ Most Common Word - LeetCode Can you solve this real interview question? Most Common Word - Given a string paragraph and a string array of the banned words banned, return the most frequent word that is not banned. It is guaranteed there is at least one word that is not banned, and tha leetcode.com Problem 금지된 단어를 제외하고 가장 흔하게 등장하는 단어를 출력하라. 대소문자를 구분하..

Algorithm/Leetcode 2023.12.10

Map의 EntrySet()에 대한 자세한 설명(맵을 탐색하는 4가지 방법)

Map 인터페이스 내부 코드 Map에 저장되는 요소는 모두 Key-Value 쌍이므로 각 Key-Value 쌍마다 매핑 관계가 있어야 한다. Map은 매핑된 항목을 나타내기 위해 Entry 내부 클래스를 사용한다. 이 Entry 내부 클래스를 통해 키와 값을 얻어낼 수 있다. Map.Entry를 통해 getKey() 및 getValue() 사용 예제 entrySet() 이란 entrySet은 Map의 Key-Value 쌍의 모음이다. HashMap에 저장된 키-값의 데이터를 결합된 형태로 Set에 저장하여 반환해준다. Set 인터페이스의 타입은 Map.Entry이다. 다음 예제와 같이 map을 순회할 수 있다. keySet() 이란 keySet은 Key의 모음이다. Set으로 반환되며 Set의 타입은 K..

공부방/JAVA 2023.12.10

[Leetcode 937] Reorder Data in Log Files. - 문자열처리

https://leetcode.com/problems/reorder-data-in-log-files/ Problem 로그를 재정렬하라. 기준은 다음과 같다. 1. 로그의 가장 앞부분은 식별자로서, 순서에 영향을 끼치지 않는다. 2. 문자로 구성된 로그가 숫자 로그보다 앞에 오며, 문자 로그는 사전순으로 한다. 3. 문자가 동일할 경우에는 식별자 순으로 한다. 4. 숫자 로그는 입력 순서대로 한다. Example 입력 logs = ["dig1 8 1 5 1","let1 art can","dig2 3 6","let2 own kit dig","let3 art zero"] 출력 ["let1 art can","let3 art zero","let2 own kit dig","dig1 8 1 5 1","dig2 3 6..

Algorithm/Leetcode 2023.12.07

익명객체와 람다는 결국엔 같은걸까?

저번 글에서 아래 두개의 코드는 같은 일을 수행한다고 글을 쓴 적이 있었다. 즉, 이 둘을 보면 컴파일러는 람다식을 익명객체로 변환한다고 볼 수 있다고 생각할 수도 있다. 이 둘을 컴파일하고 javap로 디컴파일 하여 과연 바이트코드가 같은 지 확인해보겠다. 결론부터 말하면 익명객체와 람다식은 서로 다르다. 바이트코드를 얼핏 봐도 위에는 INVOKESPECIAL 이라는 JVM 명령어를 쓰고 있고, 아래는 INVOKEDYNAMIC이라는 JVM 명령어를 사용함을 볼 수 있다. 이 둘의 차이점이 뭔지 간단하게(깊지 않게) 고민해봤다. 익명 클래스 바이트 코드 1. Ex14_0의 내부 클래스인 INNERCLASS가 만들어지고 Ex14_0$1의 클래스가 새롭게 생성되었음을 위의 바이트 코드와 다음 클래스에서 확인..

공부방/JAVA 2023.12.03

람다식 기본 - 백기선 자바라이브스터디

람다식 사용법 함수형 인터페이스 : 하나의 추상 메서드만 포함하는 인터페이스는 함수형 인터페이스 이다. 함수형 인터페이스의 경우 람다 표현식을 통해 인터페이스의 객체를 생성할 수 있다. Lamda 표현식을 사용하면서 익명 내부 클래스에 대한 너무 많은 정의를 피하고, 코드를 더욱 간결하게 만들고, 의미 없는 코드 쌍을 제거하고 핵심 로직만 남긴다. 요약: 추상 메서드가 하나만 포함된 인터페이스의 경우 Lamda 표현식을 사용하여 코드를 단순화 하여 객체를 생성할 수 있다. 람다식 생략 가능한 것 매개변수 유형 생략 가능 메서드 본문에 코드 한 줄만 있는 경우 중괄호 반한과 세미콜론 생략 가능 메서드에 매개변수 하나만 있는 경우 괄호 생략 가능 https://babgeuleus.tistory.com/116..

공부방/JAVA 2023.12.02

Ubuntu에서의 X 서버 연결 문제 해결 방법(cannot open display)

문제 상황 'dconf-editor'라는 GUI 애플리케이션을 콘솔에서 실행하려 했지만 "cannot open display"라는 오류가 발생했다. 이는 X 서버에 연결하지 못했을 때 나타나는 오류이다. 해결 전략 이 문제를 해결하기 위해 KDE라는 그래픽 사용자 인터페이스를 설치하고, SSH의 X11 포워딩 기능을 사용하여 원격에서 그래픽 애플리케이션을 실행하는 방법이 있어 먼저 KDE를 설치했다. apt-get -y install kubuntu-desktop 명령으로 KDE Plasma를 설치 설치가 완료되면 reboot 명령으로 재부팅한다 SSH 서버가 설치되있지 않거나 실행되지 않고 있다면 1. apt-get -y install openssh-server 명령으로 SSH 서버를 설치 2. 다음 명..

인프라/linux 2023.11.24

우테코 프리코스 3주차 후기 + 피드백 정리

이번주차의 문제는 로또 미션이었다.(문제 및 코드는 아래에) 더보기 문제 https://github.com/woowacourse-precourse/java-lotto-6 GitHub - woowacourse-precourse/java-lotto-6 Contribute to woowacourse-precourse/java-lotto-6 development by creating an account on GitHub. github.com 코드 https://github.com/woowacourse-precourse/java-lotto-6/pull/827 [로또] 김민상 미션 제출합니다. by minsang-alt · Pull Request #827 · woowacourse-precourse/java-lott..