김태원알고리즘 4

20231113_회문 문자열 검사[Python]

오늘도 김태원님의 인프런 강의 _ 섹션 3의 문제를 하나 풀었다. 섹셕3의 첫번째 문제인 회문 문자열 검사이다. 내가 푼 풀이 : if __name__=="__main__" : n = int(input()) for i in range(1,n+1) : tmp = list(input().upper()) for j in range(len(tmp)//2) : if tmp[j]!=tmp[-j-1] : print('#'+str(i)+ ' NO') break else : print('#'+str(i)+ ' YES') 1. upper()를 이용하여 전부 대문자로 만든다. 2. 2로 나눈 몫만큼 for문을 돌면서 앞, 뒤에서부터 하나씩 검사한다. 2-1 .만약 다른 문자가 있다면 바로 NO를 출력하고 break를 한다...

취업/TIL 2023.11.13

20231109_점수계산_[Python알고리즘]

오늘도 역시 자기 전 김태원 파이썬 알고리즘 문제를 풀었다. 드디어 섹션2의 모든 문제가 끝났다. 포기하지말고 섹션8까지 열심히 듣자. 내가 푼 풀이 : if __name__=="__main__" : n = int(input()) arr = list(map(int,input().split())) arr2 = [0]*n for idx, val in enumerate(arr) : if val == 1 : # O인 상황 if idx == 0 : # 첫번째 문제라면 무조건 1점 arr2[0] =1 else : # 첫번째 문제가 아니라면 arr2[idx] = arr2[idx-1]+1 else : continue print(sum(arr2)) 이 풀이를 만들고 생각보다 간단하게 만들었다라고 생각했다. 강사님의 풀이..

취업/TIL 2023.11.10

그리디_회의실 배정, 씨름선수, 창고 정리, 침몰하는 타이타닉, 증가순열만들기, 역수열

그리디는 탐욕적인 이라는 의미로 지금 현재 가장 최적의 것을 계속 골르는 것이다. 주로 정렬과 함께 한다. 회의실 배정 코드 : if __name__=="__main__" : n = int(input()) meeting = [list(map(int,input().split())) for _ in range(n)] meeting.sort(key = lambda x : (x[1],x[0])) endTime,cnt = 0,0 for s,e in meeting : if s >= endTime : cnt +=1 endTime = e print(cnt) => 끝나는 시간을 오름차순으로 정렬한 후 시작시간이 이전 회의의 끝나는 시간보다 늦거나 같으면 해당 회의를 넣는다. 씨름 선수 코드 : if __name__=="..

이분탐색_ 이분탐색,랜선자르기,뮤직비디오,마구간 정하기

이분탐색 ! 시간 복잡도 : O(log n) 무조건 정렬이 되어있어야한다. start와 end 라는 포인터 변수를 만든다 . mid 라는 중간 지점 변수를 만들어서 (start + end ) // 2 로 설정한다. 이분탐색 코드 : if __name__=="__main__" : n,m = map(int,input().split()) num = list(map(int,input().split())) num.sort() start,end = 0,n-1 while start capacity : # cd 추가 cnt +=1 sum = x else : sum += x return cnt if __name__=="__main__" : n,m = map(int,input().split()) music = list(m..