취업 12

99클럽 코테 스터디 19일차 TIL : DFS, 그리디 문제 풀이

문제   코드def DFS(L,sum,tsum): global result if sum+(total-tsum) c: return if L==n: if sum>result: result=sum else: DFS(L+1,sum+a[L],tsum+a[L]) DFS(L+1,sum,tsum+a[L])c , n= map(int,input().split())a=list(map(int,input().split()))total=sum(a) result=-24000000DFS(0,0,0)  설명 및 개념바둑이의 무게를 하나의 집합으로 보고 여기서 트럭에 태울 수 있는 무게를 부분집합으로 생각하고 부분집합 구하기로 문제를 푼다{81, 58, 42, 33, 61} --> { } tsum..

코딩테스트 2024.08.09

99클럽 코테 스터디 18일차 TIL : 재귀함수 문제 풀이

문제   코드def DFS(x): if x==0: return else: DFS(x//2) print(x%2,end='')n=int(input())DFS(n)  설명 및 개념 💡 원하는값을 제일 마지막부터 가져오고 싶으면 재귀함수 호출 후에 그 코드를 작성하면된다 재귀함수 호출 전에 코드를 작성하면 원하는 값을 처음부터 가져올  수 있다    문제    문제 설명원소가 3개인 경우 부분집합의 개수 는 8개이다1,2,3 의 경우1을 출력하는 경우와 출력하지 않는 경우 --> 2가지2를 출력하는 경우와 출력하지 않는 경우 --> 2가지3을 출력하는 경우와 출력하지 않는 경우 --> 2가지2가지 X 2가지 X 2가지 = 8가지이다 (공집합 포함)   부분집합 구하기는 다음과 같은 상태트리..

코딩테스트 2024.08.09

99클럽 코테 스터디 15일차 TIL : 그리디 문제 풀이

문제씨름선수 - 그리디   코드n= int(input())player=[]for i in range(n): t, w= map(int,input().split()) player.append((t,w))player.sort(reverse=True)largest=0cnt=0for t, w in player: if w > largest: largest=w cnt+=1print(cnt)  설명 및 개념 💡 이중 포문을 쓰지 않기 위해서 최댓값 구하기 방식을 사용했다     문제타이타닉 - 그리디   코드n,m= map(int,input().split())w=list(map(int,input().split()))w.sort()cnt=0while w: if len(w)==1: cnt+=1 ..

코딩테스트 2024.08.05

99클럽 코테 스터디 14일차 TIL : 그리디, 문제 풀이

그리디 알고리즘그리디 알고리즘 (탐욕법)은 현재 상황에서 지금 당장 좋은 것만 고르는 방법을 의미한다문제를 풀기 위한 최소한의 아이디어를 떠올릴 수 있는 능력을 요구한다정당성 분석이 중요 —> 단순히 가장 좋아 보이는 것을 반복적으로 선택해도 최적의 해를 구할 수 있는지 검토한다그리디 알고리즘은 대부분 정렬을 사용한다        문제   코드n= int(input())meeting=[]for _ in range(n): s, e= map(int, input().split()) meeting.append((s,e))meeting.sort(key=lambda x : (x[1],x[0]))cnt=0et=0for s, e in meeting: if s >= e: cnt+=1 et=eprint(c..

코딩테스트 2024.08.04

99클럽 코테 스터디 11일차 TIL : 결정 알고리즘, 정렬 문제 풀이

문제 마구간 정하기    코드n,c= map(int,input().split())line=[]for _ in range(n): line.append(int(input()))line.sort()lt=1rt=line[-1]result=0def Count(len): cnt=1 ep=line[0] for i in range(1,n): if line[i]-ep >= len: cnt+=1 ep=line[i] return cnt while lt= c: result=mid lt=mid+1 else: rt=mid-1print(result)       프로그래머스 - 정수 내림차순으로 배치하기 https://school.programmers.co.kr/learn/cour..

코딩테스트 2024.08.01

99클럽 코테 스터디 10일차 TIL : 이진 탐색 문제 풀이

이진 탐색 알고리즘순차 탐색 : 리스트 안에 있는 특정한 데이터를 찾기 위해 앞에서부터 데이터를 하나씩 확인하는 방법이진 탐색 : 정렬되어 있는 리스트에서 탐색 범위를 절반씩 좁혀가며 데이터를 탐색하는 방법이진 탐색은 시작점, 끝점, 중간점을 이용하여 탐색 범위를 설정한다이진 탐색의 시간 복잡도는 O(logN) 이다   문제이분 탐색   코드n,m= map(int,input().split())a=list(map(int,input().split()))lt=0rt=n-1a.sort()while lt m: rt=mid-1 else: lt=mid+1  설명 및 개념 💡 이분검색맨 왼쪽을 가리키는 lt, 맨 오른쪽을 가리키는 rt 변수가 필요하다mid = (lt + rt) //2 라는 변수가 필요하..

코딩테스트 2024.08.01

99클럽 코테 스터디 9일차 TIL : 힙 문제 풀이

문제   코드import heapq as hp #heapq hp로 import해오기 a=[] #heapq 역할을 할 리스트 생성 while True: n=int(input()) if n==-1: break elif n==0: if len(n)==0: print(-1) else: print(hp.heappop(a)) #heappop을 통해 최솟값 뽑아내기 else: hp.heappush(a,n) #heappush를 통해 a리스트에 n의 값 넣기  설명 및 개념 💡최소힙은 완전이진트리로 구현된 자료구조이다최소힙의 구성은 부모 노드값이 왼쪽자식과 오른쪽 자식노드의 값보다 작게 트리를 구성하는 것이..

코딩테스트 2024.07.30

99클럽 코테 스터디 5일차 TIL : 해시, 큐 문제 풀이

문제 : 교육과정 설계 코드from collections import dequeneed=input()n=int(input())for i in range(n): dq=deque(need) cl=input() for x in cl: if x in dq: if x!=dq.popleft(): print("#%d NO", %(1+i)) break else: if len(dq)==0: print("#%d YES" %(i+1)) else: print("#%d NO", %(1+i))  설명 및 개념필수과목을 큐에 넣은 후 과목설계를 한 부분이 필수과목에 속해 있는지 in을 사용하여 확인했다. 그리고 속해있다면 순서 또한 맞아야 하기 때문에 큐에..

코딩테스트 2024.07.26

99클럽 코테 스터디 4일차 TIL : 큐, 문자열 문제 풀이

문제  :: 공주 구하기 (큐)정보 왕국의 이웃 나라 외동딸 공주가 숲속의 괴물에게 잡혀갔습니다. 정보 왕국에는 왕자가 N명이 있는데 서로 공주를 구하러 가겠다고 합니다. 정보왕국의 왕은 다음과 같은 방법으로 공주를 구하러 갈 왕자를 결정하기로 했습니다. 왕은 왕자들을 나이 순으로 1번부터 N번까지 차례로 번호를 매긴다. 그리고 1번 왕자부터 N 번 왕자까지 순서대로 시계 방향으로 돌아가며 동그랗게 앉게 한다. 그리고 1번 왕자부터 시 계방향으로 돌아가며 1부터 시작하여 번호를 외치게 한다. 한 왕자가 K(특정숫자)를 외치면 그 왕자는 공주를 구하러 가는데서 제외되고 원 밖으로 나오게 된다. 그리고 다음 왕자부터 다시 1부터 시작하여 번호를 외친다. 이렇게 해서 마지막까지 남은 왕자가 공주를 구하러 갈 ..

코딩테스트 2024.07.25

99클럽 코테 스터디 3일차 TIL : 스택 , 배열 문제 풀이

문제 후위표기식 만들기중위표기식이 입력되면 후위표기식으로 변환하는 프로그램을 작성하세요.중위표기식은 우리가 흔히 쓰은 표현식입니다. 즉 3+5 와 같이 연산자가 피연산자 사이에 있 으면 중위표기식입니다.후위표기식은 35+ 와 같이 연산자가 피연산자 뒤에 있는 표기식입니다.예를 들어 중위표기식이 3+5*2 를 후위표기식으로 표현하면 352*+ 로 표현됩니다.다음과 같이 연산 최우선인 괄호가 표현된 식이라면 (3+5)*2 이면 35+2* 로 바꾸어야 합니다.▣ 입력설명첫 줄에 중위표기식이 주어진다. 길이는 100을 넘지 않는다.식은 1~9의 숫자와 +, -, *, /, (, ) 연산자로만 이루어진다.▣ 출력설명후위표기식을 출력한다.▣ 입력예제 1 3+5*2/(7-2)▣ 출력예제 1 352*72-/+   코드..

코딩테스트 2024.07.24