Algorithm

Algorithm/Basic

[Python] Day 14 (3/5) -- list comprehension 조건 걸기

for 문을 한 줄로 작성할 수 있는 리스트 컴프리헨션에서for 문 안에 조건문을 넣고 싶을 수 있다.그 때 if 만 쓰거나 if - else 까지 넣고 싶을 수 있다.  return [t for t, r in zip(todo_list, finished) if not r]# 틀린 문법return [t if not r else continue for t, r in zip(todo_list, finished)]  if 만 쓸 경우에는 for 문 뒤에 적어준다.참고로,  continue, pass 와 같이 반복문 건너뛰는 명령어는 list comprehension 에서 쓸 수 없다.else 문을 쓰려면 꼭 다른 반환되는 값이 필요하다. [ num if num % 2 == 0 else 0 for num in n..

Algorithm/Basic

[Python] Day 14 (1/5) -- sum()

# 가장 첫 번째 원소를 1번 원소라고 할 때, 홀수 번째 원소들의 합과 짝수 번째 원소들의 합 중 큰 값을 returndef odd_vs_even(num_list): odd, even = 0, 0 odd = sum(num for num in num_list[1::2]) even = sum(num for num in num_list[::2]) return max(odd, even)'''return max(sum(num_list[::2]), sum(num_list[1::2]))''''''JSnum_list.map((val, idx) => { !(idx % 2) ? even += val : odd += val })return odd > even ? odd : even;num_list.f..

Algorithm/Basic

[Python] Day 13 (5/5) -- (JS) filter

# 첫 번째 원소부터 마지막 원소까지 n개 간격def interval_n(num_list, n): return num_list[::n]'''JSconst solution = (num_list, n) => num_list.filter((_, i) => !(i % n))Javaint N = num_list.length % n == 0 ? num_list.length / n : num_list.length / n + 1;int idx = 0;int[] answer = new int[N];for (int i = 0;i    배열.filter((callback, index) => 조건식 ) _ 는 쓰이지 않는 매개변수를 뜻함.index 자리에는 배열에서 처리중인 현재 요소의 인덱스가 담김.... 에서는 배열..

Algorithm/Basic

[Python] Day 13 (4/5) -- (Java) Array.copyOfRange

# num_list의 첫 번째 원소부터 n 번째 원소까지의 모든 원소를 담은 리스트def to_n(num_list, n): return num_list[:n]'''JSreturn num_list.slice(0, n);Javareturn Arrays.copyOfRange(num_list,0,n);'''print(to_n([2, 1, 6], 1)) # [2]  Arrays.copyOfRange(원본배열, 시작 인덱스, 끝 인덱스) 원본 배열의 특정 범위만큼 복사해서 새로운 배열로 반환.끝 인덱스가 원본 배열 길이보다 크면 이후의 값은 기본값으로 초기화됨. ex)String[] arr = new String[] ("a", "b", "c"};String[] copy = Arrays.copyOfRan..

Algorithm/Basic

[Python] Day 13 (3/5) 왼쪽오른쪽

문자열 리스트 str_list에는 "u", "d", "l", "r" 네 개의 문자열이 여러 개 저장되어 있습니다. str_list에서 "l"과 "r" 중 먼저 나오는 문자열이 "l"이라면 해당 문자열을 기준으로 왼쪽에 있는 문자열들을 순서대로 담은 리스트를, 먼저 나오는 문자열이 "r"이라면 해당 문자열을 기준으로 오른쪽에 있는 문자열들을 순서대로 담은 리스트를 return하도록 solution 함수를 완성해주세요. "l"이나 "r"이 없다면 빈 리스트를 return합니다.  def left_right(str_list): for i, val in enumerate(str_list): if val == "l": return str_list[:i] if va..

Algorithm/Basic

[Python] Day 13 (2/5) -- (JS) splice()

너무 간단한 코드여서 한 문제만 올릴 수 없었다.다른사람 풀이에서 자바스크립트 코드도 겸사겸사 보고 있는데, num_list.push(...num_list.splice(0, n)); 이건 대체 무슨 코드냐고.. a배열.push(...b배열) a배열 끝에 b배열의 값을 하나씩 넣어줌... 없이 바로 배열을 넣으면 오류남.  배열.splice(시작인덱스, 범위, 추가) 원본 배열을 건드림.특정 범위를 삭제하거나, 새로 추가하거나, 기존 값을 대체할 수 있음.splice(시작) : 인덱스부터 전체 삭제splice(시작, 범위) : 인덱스부터 범위까지 삭제splice(시작, 0, 추가) : 인덱스 자리에 값 추가 -- splice(10, 0, a, b)splice(시작, 범위, 추가) : 인덱스부터 범위까지 삭..

Algorithm/Basic

[Python] Day 12 -- get(), extend(), list(filter(lambda

get(key, default)딕셔너리에서 key 로 value 를 불러오는 함수. 값이 없으면 defalut 리턴. original.extend(new_list)리스트 합치기 -- 원본 리스트가 변함(+ 연산자 -- 합쳐진 리스트를 새로 반환)  list(filter(lambda i: arr[i] == 2, range(len(arr)))) list에서 value 로 다중 index 찾기   '''리스트 (배열)# 56) 리스트 자르기# 57) 첫 번째로 나오는 음수# 58) 배열 만들기 3# 59) 2의 영역# 60) 배열 조각하기'''# 56) ===========================================================================def cut_list(..

Algorithm/Basic

[Python] Day 11 -- ord(), not in, index(val, start)

list_1 = [0] * 52 일차원 배열 만들기 list_2 = [[0] * w for _ in range(h)}이차원 배열 만들기  ord(값)값을 10진수 유니코드 값으로 출력 (아스키 코드로 변환)A = 65 if val not in listlist 에 val 가 들어있지 않은 경우 가정-- 자바스크립트에서는 if(!(val in list)) 이런식으로 씀  '''리스트(배열)# 51) 문자 개수 세기# 52) 배열 만들기 1# 53) 글자 지우기# 54) 카운트 다운# 55) 가까운 1 찾기'''# 51) ===========================================================================# A의 개수 ~ z의 개수 == 총 52개의 정수 배열..