본문 바로가기
Problem Solving

2023.02.28 ~ 2023.03.17 코딩테스트 이론 정리

by 청량리 물냉면 2023. 3. 12.
반응형

[프로그래머스 | 파이썬 / 자바스크립트] [1차] 뉴스 클러스터링(2018 KAKAO BLIND RECRUITMENT/ level 2)

🐍 파이썬 | re 모듈

정규식을 사용하기 위한 모듈

findall(정규식 패턴, 문자열)

정규식 패턴에 맞는 문자열을 모두 찾아서 리스트로 반환

 

🐍파이썬| Count 객체

중복된 데이터가 저장된 배열을 인자로 넘기면 각 원소가 몇 번씩 나오는지 저장된 객체를 반환

Counter(["a", "b", "c", "a", "a", "b"])
# Counter({'a': 3, 'b': 2, 'c': 1})

참고: https://www.daleseo.com/python-collections-counter/

 

🐥 자바스크립트 | substr()

문자열에서 특정 위치에서 시작하여 특정 문자 수 만큼의 문자들을 반환하는 메서드

str.substr(start[, length])
  • start: 추출하고자 하는 문자들의 시작 위치
  • length: 추출할 문자들의 총 갯수

[프로그래머스 | 파이썬 / 자바스크립트] 이진수 더하기(코딩테스트 입문/ level 0)

🐍 파이썬 |  int(value, base) 

base에 진법(범위: 2 ~ 36)을 입력할 수 있다. 입력하지 않을 경우 기본으로 10이 넘어간다.

 

🐥 자바스크립트 | parseInt(string, radix)

- radix (Optional)

string의 진수를 나타내는 2부터 36까지의 정수. 기본 값은 10이 아님에 주의. Number 자료형이 아닌 경우 Number로 변환

 

🐥 자바스크립트 | toString(radix)

숫자 및 BigInts의 경우 toString()은 선택적으로 기수(radix)를 매개변수로 취한다. 기수의 값은 최소 2부터 36까지이다.


[프로그래머스 | 파이썬 / 자바스크립트] 대충 만든 자판(연습문제/ level 1)

🐍 파이썬 | for-else문

for문이 break 등으로 중간에 빠져나오지 않고 끝까지 실행됐을 경우 else문 실행


[프로그래머스 | 파이썬 / 자바스크립트] 주차 요금 계산(2022 KAKAO BLIND RECRUITMENT/ level 2)

🐍 파이썬 | key를 기준으로 딕셔너리 정렬하기

  • sorted() 함수 사용
dic = {'0000': 14600, '5961': 5000, '0148': 34400}
newD = sorted(dic.items())
print(newD)
# [('0000', 14600), ('0148', 34400), ('5961', 5000)]
# items() 함수는 key-value 쌍이 튜플 형태로 구성된 리스트를 반환한다.

(참고:https://tinyurl.com/2jr73pop)

 

🐍 파이썬 | 딕셔너리 defaultdict

일반적인 딕셔너리의 경우, 딕셔너리에 존재하지 않는 key에 대해 접근할 경우 keyError가 발생한다. 반면 defaultdic의 경우 key값이 존재하지 않아도 default값을 줄 수 있어 에러가 발생하지 않는다.

(참고: https://tinyurl.com/2l6vytxa)


[프로그래머스 | 파이썬] 더 맵게(힙(Heap)/ level 2)

🐍 파이썬 | heapq 모듈

데이터를 정렬된 상태로 저장하기 위해서 사용하는 파이썬 내장모듈, 기본적으로 최소힙

- heapify(): 기존 리스트를 힙으로 변환

- heappush(힙 리스트, 힙에 push할 원소): 힙에 원소를 추가

- heappop(힙 리스트): 힙에서 가장 작은 원소 삭제

(참고: https://www.daleseo.com/python-heapq/)

 

파이썬의 heapq 모듈로 힙 자료구조 사용하기

Engineering Blog by Dale Seo

www.daleseo.com


[프로그래머스 | 파이썬 / 자바스크립트] 과일 장수(연습문제/ level 1)

🐥 자바스크립트 | at()

  • 정수 값을 받아, 배열에서 해당 값에 해당하는 인덱스의 요소를 반환하는 메서드.
  • 양수와 음수 모두 지정할 수 있고, 음수 값의 경우 배열의 뒤에서부터 인덱스를 센다.

🐥 자바스크립트 | slice()

객체 참조를 새 배열로 복사, 얕은 복사이며 기존 배열을 대체하지 않는다.


[프로그래머스 | 파이썬 / 자바스크립트] [3차] 압축(2018 KAKAO BLIND RECRUITMENT/ level 2)

🐥 자바스크립트 | fromCodePoint()

자바스크립트 아스키코드➡문자 변환

 

🐥 자바스크립트 | 객체에 특정 키(속성)가 존재하는지 확인하는 방법

https://leftday.tistory.com/81

 

자바스크립트 - 객체에 특정 키(속성)가 존재하는지 확인하는 방법

중괄호 {} 로 된 자바스크립트 객체에서 키를 찾는 방법은 Object 의 keys 사용, key in Object 활용 그리고 hasOwnProperty를 사용하는 방법이 있습니다. 자바스크립트 키 확인 방법 자바스크립트를 이용하

leftday.tistory.com

 

🐥 자바스크립트 | 문자열 자르기

https://gent.tistory.com/414

 

[JavaScript] 문자열 자르기 (substr, substring, slice)

자바스크립트에서 문자열을 자르기 위해서는 substr(), substring(), slice() 함수를 사용하면 된다. 문자열을 뒤에서부터 자르기 위해서는 slice() 함수를 사용하면 효율적이며 타 언어의 Right 함수와 비

gent.tistory.com

 

🐥 자바스크립트 | reduce 활용

https://www.zerocho.com/category/JavaScript/post/5acafb05f24445001b8d796d

 

https://www.zerocho.com/category/JavaScript/post/5acafb05f24445001b8d796d

 

www.zerocho.com


[프로그래머스 | 파이썬 / 자바스크립트] 겹치는 선분의 길이(코딩테스트 입문/ level 0)

🐥 자바스크립트 | reduce 활용

return line.reduce((a, c) =>  c > 1 ? a + 1 : a, 0)

현재 값이 1보다 크면 누적값+1을 수행하고, 1보다 작으면 누적값에 아무것도 더하지 않는다.

 

🐥자바스크립| for문 생략

https://seoyun-is-connecting-the-dots.tistory.com/46

 

[자바 프로그래밍] 19. 반복문 - for문

💡 for 문 for 문의 문장들은 생략이 가능 초기화식 생략: 이미 이전에 값이 초기화되어 for 내부에서 값을 지정할 필요가 없는 경우 조건식 생략: 반복 수행에 대한 조건이 수행문 내부에 있는 경

seoyun-is-connecting-the-dots.tistory.com


[프로그래머스 | 파이썬 / 자바스크립트] 덧칠하기(연습문제 / level 2)

1. 빈 배열 체크
🐍 파이썬
while(section)	#section 내 원소가 존재하면 true, 원소가 없으면 false
🐥자바스크립트
// while(section) 동작하지 않는 코드
while(section.length > 0)	//배열 길이를 이용해 빈배열 체크. 정상동작하는 코드

 

2. a <= x < b
🐍 파이썬
e <= section[0] < e+m	#문제없이 동작한다.

🐥자바스크립트

// e <= section[0] < e+m 동작하지 않는 코드
e <= section[0] && section[0] < e+m	//이렇게 수정해야 한다.​

[프로그래머스 | 파이썬 / 자바스크립트] [3차] 파일명 정렬(2018 KAKAO BLIND RECRUITMENT / level 2)

🐍 파이썬 | sort 람다함수

https://velog.io/@aonee/Python-%EC%A0%95%EB%A0%AC-sort-sorted-reverse

 

[Python] 정렬 문법 sort() sorted() reverse

 

velog.io

 

import re
def solution(files):
    a = sorted(files, key=lambda file : int(re.findall('\d+', file)[0]))
    b = sorted(a, key=lambda file : re.split('\d+', file.lower())[0])
    return b

 

🐍 파이썬 | 정규표현식

🐍 파이썬 | re모듈

findall(패턴, 문자열, 플래그)

문자열 안의 패턴에 맞는 케이스를 전부 찾아서 리스트로 반환

참고: https://brownbears.tistory.com/506

 

 

🐥 자바스크립트 | parseInt와 isNaN의 차이점 & isNaN함수 사용 시 주의할 점

💡 parseInt와 isNaN의 차이점
1️⃣ isNaN takes an integer as an argument - therefore JS converts "" to 0
(isNaN은 정수를 인수로 가진다. - 따라서 인수의 ""(빈 문자열)은 0으로 취급되어 false가 리턴된다.)
2️⃣ parseInt takes a string as an argument - therefore an empty string is not a number
(parseInt는 string을 인수로 가진다 - 따라서 인수의 ""(빈 문자열)은 숫자로 취급되지 않는다.)
출처: https://stackoverflow.com/questions/8271836/isnan-vs-parseint-confusion


💡 isNaN함수 사용시 주의할 점

//isNaN 단독 사용 시
console.log(isNaN(" ")); // false
console.log(isNaN(".")); // true
console.log(isNaN("number")); // true
console.log(isNaN("2.19")); // false
console.log(isNaN("")); // false
console.log(isNaN(null)); // false

//parseInt로 감싼 경우
console.log(isNaN(parseInt(" "))); // true
console.log(isNaN(parseInt("."))); // true
console.log(isNaN(parseInt("number"))); // true
console.log(isNaN(parseInt("2.19"))); // false
console.log(isNaN(parseInt("")));	// true
console.log(isNaN(parseInt(null)));	// true
isNaN 함수의 인수가 Number 형이 아닌 경우, 그 값은 먼저 숫자로 강제됩니다. 결과값은 그 뒤에 NaN인지 결정하기 위해 테스트됩니다. 따라서 숫자 형으로 강제된 결과 유효한 비NaN 숫자값(특히 강제될 때 숫자값이 0 또는 1을 주는 빈 문자열 및 boolean 원시형)이 되는 비숫자의 경우, "false" 반환값은 예기치 않을 수 있습니다;
(출처: https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/isNaN)
(추가로 참고하면 좋을 블로그: https://mygumi.tistory.com/335)

🐥 자바스크립트 | 정규표현식

정규표현식 참고 블로그: https://heropy.blog/2018/10/28/regexp/

 

정규표현식, 이렇게 시작하자!

매일 쓰는 것도, 가독성이 좋은 것도 아니지만, 모르면 안되는 정규표현식. 저는 이렇게 공부하기 시작했습니다! (자바스크립트를 기준으로 설명합니다)

heropy.blog

🐥 자바스크립트 | match()

문자열이 정규식과 매치되는 부분을 검색하는 메서드

 

🐥 자바스크립트 | localeCompare()

참조 문자열이 정렬 순으로 지정된 문자열 앞 혹은 뒤에 오는지 또는 동일한 문자열인지 나타내는 수치를 반환하는 메서드

localeCompare(compareString)
localeCompare(compareString, locales)
localeCompare(compareString, locales, options)

매개변수

  • compareString: referenceStr가 비교되는 문자열
  • locales: 기준 언어(독일어, 스웨덴어 등...)
  • options: localeCompare()이 제공하는 결과를 options를 통해 사용자 정의 가능

반환 값

compareString 전에 referenceStr가 위치하는 경우 음수, compareString 후에 referenceStr가 위치하는 경우 양수, 동등할 경우 0

반응형