본문 바로가기

728x90

IT

(197)
[self-study/level 1] SQL | 모든 레코드 조회하기 | SELECT 문제 내 풀이 select * from ANIMAL_INS ORDER BY ANIMAL_ID 👉🏻조회할 때는 select를 써주며 모든 열을 조회하므로 *을 사용한다. 👉🏻정렬할 때는 ORDER BY를 써주며 뒤에 기준을 써준다. select * from ANIMAL_INS ORDER BY ANIMAL_ID 👉🏻한 줄로 적을 수도 있다! 🐰sql 공부 시작!
[self-study/level 1] 체육복 | 탐욕법(Greedy) - 도전편 문제 내 풀이 1️⃣첫 번째 시도 def solution(n, lost, reserve): lost_and_reserve_student = set(lost) & set(reserve) for student in lost_and_reserve_student: lost.remove(student) reserve.remove(student) if len(lost) > len(reserve): return n - (len(lost) - len(reserve)) else: return n 👉🏻일단 여벌의 체육복을 가져왔는데 도난당한 학생들을 lost와 reserve에서 제외시켰다. 그리고 나서 체육 수업을 들을 수 있는 학생 수를 반환했다. ✅set 📌중복이 없는 자료구조이다. lost = [2, 4] reser..
[TAVE/level 2] 튜플 문제 내 풀이 1️⃣첫 시도 def solution1(s): striped_s = s.strip("{""}") #2},{2,1},{2,1,3},{2,1,3,4 s_list = striped_s.split("},{") #['2', '2,1', '2,1,3', '2,1,3,4'] long_s = max( s_list, key=lambda x:len(x)) #2,1,3,4 answer = [ int(i) for i in long_s if i != ","] #['2', '1', '3', '4'] return answer 👉🏻결과로 나오는 [2, 1, 3, 4]와 [3, 2, 4, 1] 이 두 리스트가 같다고 착각을 했다. 즉 리스트의 원소만 같으면 같은 튜플에서 나온 결과값이라고 착각을 했다. 때문에 아래와 같..
[TAVE/파이썬 알고리즘] Ch8 | 연결 리스트 - 13번 팰린드롬 연결 리스트(leetcode 234) 📌연결 리스트: 선형적인 자료구조이다. 구조체 각각이 서로 연결된 형태로 구성되어 있고 메모리 어딘가에 흩뿌려져 있다. 해당 구조체는 다음 구조체가 무엇인지에 대한 정보를 담고 있어 연결된 형태를 유지할 수 있는 것이다. 📌팰린드롬: 회문이라고도 부른다. 거꾸로 읽어도 제대로 읽은 것과 같은 문장이나 낱말, 숫자, 문자열 등이다. 리스트 변환 1️⃣파이썬의 리스트로 변환한다. q: List = [] node = head #리스트 변환 while node is not None: q.append(node.val) node = node.next 2️⃣pop함수에 인덱스를 지정해 요소를 추출하며 같은 값인지 확인한다. #팰린드롬 판별 while len(q) > 1: if q.pop(0) != q.pop(): r..
[TAVE/파이썬 알고리즘] Ch7 | 배열 - 11번 자신을 제외한 배열의 곱 왼쪽 곱셈 결과에 오른쪽 값을 차례대로 곱셈 1️⃣왼쪽→오른쪽 방향으로 곱한다. out = [] #왼쪽 곱셈 p = 1 for i in range(0, len(nums)): out.append(p) p = p * nums[i] 📌공간 복잡도는 O(1)을 위해 기존 out 변수를 재활용한다. 👉🏻p와 리스트의 각 요소들 간의 곱셈 결과를 그대로 out 리스트에 담는다. 👉🏻결과: [1, 1, 2, 6] ✍🏻만약 별도의 리스트 변수를 만들고 그 변수에 우측 곱셈 결과를 넣으면 공간 복잡도는 O(1)이 된다. ✅공간복잡도 O(n) 👉🏻저장되는 메모리, 변수 양에 따라서 공간복잡도가 결정된다. 배열이 중첩될수록 n의 차수가 높아진다. ✍🏻참고로 시간복잡도는 코드 실행의 시간에 따라 결정된다. for문이 중첩될수..
[TAVE/파이썬 알고리즘] Ch6 | 문자열 조작 - 4번 가장 흔한 단어 리스트 컴프리헨션, Counter 객체 사용 1️⃣ Data Cleansing 📌입력값에 대한 전처리 작업 👉🏻대소문자가 섞이고 쉼표 등 구두점 등을 처리해준다. words = [word for word in re.sub(r'[^\w]', ' ', paragraph) .lower().split() if word not in banned] ✍🏻정규식 문법 \w 단어 문자 ^ not 👉🏻단어 문자가 아닌 모든 문자를 공백으로 치환하는 역할을 한다. 👉🏻다음으로 소문자로 바꿔주고 공백으로 나눠준다. 👉🏻마지막으로 if문을 써주어 금지 단어를 제외한 단어들을 리스트로 저장한다. 2️⃣ 흔한 단어 추출 counts = collection.defaltdict(int) for word in words: counts[..
[self-study/생활코딩] | ① 인터페이스의 형식 ② 다형성 참고자료: Youtube - 생활코딩 JAVA1 수업 소개 //인터페이스로 형태를 규제한다. interface Calculable { int sum(int v1, int v2); } //인터페이스 형태대로 클래스를 생성한다. class RealCal implements Calculable { public int sum(int v1, int v2) { return v1 + v2; } } //인터페이스 형태대로 클래스를 생성한다. class DummyCal implements Calculable { public int sum(int v1, int v2) { return 3; } } public class InterfaceApp { public static void main(String[] args) { Du..
[self-study/생활코딩] 객체지향프로그래밍(OOP) | ①클래스&인스턴스 ②변수와 메소드 ③클래스 ④인스턴스 ⑤static ⑥생성자와 this 참고자료: Youtube - 생활코딩 JAVA1 남의 클래스 & 남의 인스턴스 import java.io.FileWriter; import java.io.IOException; public class OthersOOP { public static void main(String[] args) throws IOException { //class: System, Math, FileWriter //instance: f1, f2 System.out.println(Math.PI); System.out.println(Math.floor(1.8)); System.out.println(Math.ceil(1.8)); FileWriter f1 = new FileWriter("data.txt"); f1.write("Hello..

728x90