분류 전체보기 89

[Leetcode] 49. Group Anagrams

✅ 문제 - 그룹 애너그램 💡 애너그램이란? 문자를 재배열하여 다른 단어로 바꾸는 것이다. 예를들어 eat의 경우 eat, ate, tea 등으로 바꿀 수 있다. 이 문제는 주어진 문자열을 이용하여 동일한 문자를 지닌 문자열들을 그룹핑해서 반환하여야 한다. ✅ 풀이 코드from typing import List import collections class Solution: def groupAnagrams(self, strs: List[str]) -> List[List[str]]: #기본적으로 빈 리스트를 값으로 가지는 딕셔너리 anagrams = collections.defaultdict(list) #str 리스트 요소에 대해 반복 #단어를 정렬, 해당 단어를 키로 하여 word를 추가함 for word..

주니어 자바 개발자를 위한 100가지 질문(1) - 기초

인프런에서 매일 뉴스레터처럼 메일을 보내주는데, 단어짱이라고 해서 IT 용어들을 하나씩 알려준다. 한 번에 이런 용어나 개념을 정리할 방법이 없을까 찾다가 커리어리에서 컬리 백엔드 개발자인 조서희 님이 정리해서 올려준 100가지 질문을 발견! 무엇이든지 공부할 때 나의 언어로 바꿔서 흡수하는 과정도 굉장히 필요한 것 같다. 💻 JDK와 JRE의 차이점은 무엇입니까? 더보기 ✅ JRE는 자바 실행 환경으로 자바 프로그램을 실행하는 데 필요한 것이고, JDK는 자발 개발 도구로 자바 애플리케이션을 개발하기 위해 필요한 기능으로 JRE를 포함합니다. JRE(Java Runtime Environment) - 자바 실행 환경으로 단순히 실행하기 위한 목적이라면 JRE만으로도 가능하나 컴파일 에러가 날 가능성이 있..

++/CS 2023.12.20

[Leetcode] 561. Array Partition

✅ 문제 - 배열 파티션 💡 문제 포인트 숫자 배열 nums를 2개씩 파티셔닝 해서, 그룹별 최솟값을 더했을 때 합이 가장 큰 경우 그 합을 반환 nums는 짝수 개수로 이루어져 있음 ✅ 나의 코드 💡 나의 Point 1. 리스트 오름차순 정렬 2. 2개씩 파티셔닝 한다고 쳤을 때 오름차순 되어 있기 때문에 파티션 중 첫 번째 값(최솟값)끼리 더하면 합이 최대로 나옴 3. 리스트 인덱스가 0, 2, 4, 6인 경우끼리 더해주기 class Solution: def arrayPairSum(self, nums: List[int]) -> int: nums.sort() sum=0 for i in range(0, len(nums), 2): sum += nums[i] return sum 파이썬에서 for문 돌릴 때 ..

[프로그래머스][PCCE 기출문제] 10번 / 데이터 분석 - 250121

문제 설명 제한사항 입출력 예 나의 풀이 굉장히 지저분한 내 코드,,, 다른 사람들 풀이 보고 눈물 한 방울 또르륵,,, 내가 접근했던 방식은 1. ext 키워드에 따라 answer 배열의 길이 선언을 위한 조건식(count를 변수로 둠) 2. 배열 선언 후, val_ext보다 작은 경우만 answer 배열에 복사(index가 다르기 때문에 answerIndex 변수 새로 지정) 3. 오름차순 정렬(Comparator 이용) import java.util.Arrays; import java.util.Comparator; class Solution { public int[][] solution(int[][] data, String ext, int val_ext, String sort_by) { int co..

[프로그래머스][Lv.1] 숫자 문자열과 영단어 - 81301

문제 설명 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자릿수를 영단어로 바꾸는 예시입니다. 1478 → "one4seveneight" 234567 → "23four5six7" 10203 → "1zerotwozero3" 이렇게 숫자의 일부 자릿수가 영단어로 바뀌어졌거나, 혹은 바뀌지 않고 그대로인 문자열 s가 매개변수로 주어집니다. s가 의미하는 원래 숫자를 return 하도록 solution 함수를 완성해주세요. 참고로 각 숫자에 대응되는 영단어는 다음 표와 같습니다. 제한사항 1 ≤ s의 길이 ≤ 50 s가 "zero" 또는 "0"으로 시작하는 경우는 주어지지 않습니..

연산자

논리 연산자 / 논리부정 연산자 / 증감연산자 / 산술 연산자 / 비교 연산자 / 삼항 연산자 / 복합 대입 연산자 1. 논리 연산자 => 결과 값이 논리값으로 반환됨(true / false) 논리값 && 논리값 논리값 || 논리값 and 양 쪽 다 true 일 경우에만 결과 값이 true 왼쪽이 false 일 경우 오른쪽 연산은 수행하지 않음 or 둘 중 하나라도 true 일 경우 결과 값 true 왼쪽이 true일 경우 오른쪽 연산은 수행하지 않음 2. 논리부정 연산자 논리 값을 반대로 바꾸는 연산자로 앞에 !를 붙여 표현 !논리값 => ( true → false, false → true ) 3. 증감 연산자 ++ : 피연산자의 값을 1 증가시키는 연산자 -- : 피연산자의 값을 1 감소시키는 연산자..

+/Java 2023.12.08

keyboardInput 기능 - Scanner 클래스

앞서 출력문을 이용해 원하는 문자를 직접 출력을 해 보았다면, 오늘은 화면에서 입력값을 데이터로 받아 처리하는 기능을 알아볼 것이다. java에는 Scanner 클래스라고 해서 기본적으로 제공되는 기능이 있는데, 이 클래스 내에 필요한 메서드를 불러와 사용하면 된다. 제일 먼저 할 일은 Scanner 클래스를 생성하고 import 하기 import java.util.Scanner; public static void main(String[] args) { Scanner sc = new Scanner(System.in); } 위와 같이 클래스 선언 후 필요한 메서드를 불러오면 되는데, 입력 받을 값의 형태에 따라 불러오는 메서드가 달라진다. 문자열: sc.next() - 공백이 있을 경우 공백 이전까지 sc..

+/Java 2023.12.08

출력문 - print, println, printf 구분하기

1. print와 println 구분하기 print println 줄바꿈 없이 출력 출력 후 줄바꿈 위와 같이 로그를 찍게 되면 이와 같이 콘솔창에 찍힌다! 큰 차이가 없어보이지만 for문 돌릴 때 아주 유용하게 쓰인다! 예를 들면, 문자나 숫자를 열의 형태로 한 줄에 나란히 출력해야 할 땐 print를 이용해 출력하고 줄바꿈이 필요할 땐 println을 사용하면 된다. print는 줄바꿈 없이 출력되지만 \n을 이용하면 줄바꿈을 시행하게 되는데 이를 이스케이프 시퀀스라고 한다. \t는 탭 기능이 있어 두 문자 사이에 탭 키를 적용한 효과와 같다. 2. printf printf를 사용하면 출력하고자 하는 값들이 제시한 형식에 맞춰서 출력만 진행된다. 위의 print, println과 차이점이 있다면 포맷..

+/Java 2023.12.07

[프로그래머스][Lv.1] 자연수 뒤집어 배열로 만들기 - 12932

문제 설명 자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다. 제한 조건 n은 10,000,000,000이하인 자연수입니다. 입출력 예 첫 번째 시도 class Solution { public int[] solution(long n) { String str = Long.toString(n); int[] answer = new int[str.length()]; for(int i = str.length(); i>0; i--){ answer[str.length()-i]= str.charAt(i-1); } return answer; } } 이클립스에서 코드 실행해서 로그 찍어 봤을 땐 분명 [5, 4, 3, 2, 1]로 나..