일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 파이썬
- 기사
- 헤드라인
- 헤드라인모음
- 백준2225
- encoding
- 크롤링
- 20201013뉴스
- 20200615뉴스
- LeetCode #Python #알고리즘 #코딩테스트 #interview
- MySQL
- C++
- 20201016뉴스
- json
- 20201018뉴스
- 20200816뉴스
- 코테
- 20201015뉴스
- 헤드라인기사
- 기사헤드라인
- 20201017뉴스
- Python
- 뉴스헤드라인
- 뉴스
- 경제뉴스
- 헤드라인뉴스
- 20201011뉴스
- 백준
- 알고리즘
- 오늘의뉴스
- Today
- Total
목록LeetCode #Python #알고리즘 #코딩테스트 #interview (24)
HelloCho
문제 이 문제는 첫 가스탱크에 0이 있을때 어느위치에서 시작해야 한바퀴를 다 돌고 올수있는지 있다면 어느지점에서 시작해야하는지 한바퀴 못돈다면 False를 출력하는 문제이다. 처음 시도한 방법은 circle이라는 함수를 만들어서 각 index별 한바퀴를 순회할수있는지를 확인하는 방법으로 프로그램을 작성했다. class Solution: def canCompleteCircuit(self, gas, cost) -> int: for i in range(len(gas)) : if self.circle(i,gas,cost): return i return -1 def circle(self,index,gas,cost): n = len(gas) i_g = 0 j = 0 if gas[index] < cost[index]..
문제 이 문제는 list가 주어질때 오른쪽으로 k index만큼 옮기는 문제이다. 처음 시도한 방법. class Solution: def rotate(self, nums: List[int], k: int) -> None: """ Do not return anything, modify nums in-place instead. """ for i in range(k): data = nums.pop() nums.insert(0,data) 처음 시도한 방법은 가장 마지막 값을 pop시켜서 nums에 0번 index에 값을 넣어줬다. 결과 ..많이 느린 것 같다. 원인은 insert로 값을 넣다보니 값을 하나씩 다 미뤄야해서 오래걸리는 것! 그래서 다음 시도한 방법은 k개씩 옮기면 어느위치에 값이 가는지 이미(?)..
문제 : 이 문제는 H-Index를 구하는 문제로 아래 링크와 같은 문제이다. 다른 점은 이 문제에서는 미리 오름차순으로 정렬이 되어있다는 거? hellocho.tistory.com/279 [Python] #274. H-Index(Medium) 문제 이 문제는 주어진 리스트에서 H개 이상 citation이 된 것들을 찾는 문제로 H index를 찾는 문제이다. class Solution: def hIndex(self, citations) -> int: if not citations : return 0 citations.sort(re.. hellocho.tistory.com 따라서 위의 링크의 로직을 그대로 이용한다 ㅋ.... class Solution: def hIndex(self, citations: ..
문제 이 문제는 주어진 리스트에서 H개 이상 citation이 된 것들을 찾는 문제로 H index를 찾는 문제이다. class Solution: def hIndex(self, citations) -> int: if not citations : return 0 citations.sort(reverse=True) for idx, citation in enumerate(citations): if idx + 1 > citation : return idx return idx + 1 citations list를 내림차순으로 정렬한다. idx의 값이 citation의 값보다 커질경우 return 한다. 그렇지 않을 경우에는 idx + 1 값을 return한다. 결과
문제 이 문제는 palindrome 우리말로 회문문자인지 아닌지를 판단하는 프로그래밍을 하면된다! 회문문자란 앞으로나 뒤로나 같은 문자를 말한다. ex) 토마토, 이효리(이) class Solution: def isPalindrome(self, s: str) -> bool: if len(s)==0: return True s = s.lower() s = s.replace(' ','') res = '' for i in s: if i.isalnum(): res += i return res == res[::-1] 먼저 1) 대문자를 소문자로 바꾼다. 2) 띄어쓰기를 없앤다. for문을 이용해 알파벳이나 숫자 인 것만 res에 합쳐준다. return 값은 res값과 뒤집은 것을 비교한다. 결과
문제 : 이 문제는 n미만의 숫자들에서 소수를 찾는 문제이다. 처음에 시도한 방법은 2중 for문을 이용해 각 수의 배수의 값의 값을 채워 넣는다. class Solution: def countPrimes(self, n: int) -> int: if n int: if n
문제 : 이 문제는 단순하게 2차원 배열안에서 음수의 개수를 count하는 문제이다. 특징은 내림차순으로 이미 정렬이 되어있다는 것이다. class Solution: def countNegatives(self, grid: List[List[int]]) -> int: cnt = 0 for i in range(len(grid)): for j in range(len(grid[0])): if grid[i][j] < 0 : cnt += len(grid[0]) - (j) break return cnt 단순하게 접근했다. 2중 for문을 이용해서 배열 원소에 접근한다. 만약 음수를 만난다면 그 행의 남은 원소역시 음수이기 때문에 행의 개수 - index를 이용해서 개수를 더해줬다. 결과
문제 : 이 문제는 주어진 s 숫자 값을 만들기 위한 최소 수의 개수를 구하는 문제이다. 이 문제를 해결하는 방법은 2개의 포인터를 이용해서 문제를 해결해 볼 것이다. class Solution: def minSubArrayLen(self, s: int, nums: List[int]) -> int: l,r = 0,len(nums)+1 sub = 0 for i in range(len(nums)): sub += nums[i] while sub >= s: r = min(r, i-l+1) sub -= nums[l] l +=1 return r if r != len(nums) + 1 else 0 l,r 이라는 포인터를 지정해준다. sub이라는 subarray의 합을 만들변수를 설정하고 nums list를 순회하며 ..