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

2023. 3. 12. 21:10·Problem Solving
반응형

[프로그래머스 | 파이썬 / 자바스크립트] [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

 

🐍 파이썬 | 정규표현식

  • '\d+' : 하나 혹은 그 이상 연결된 숫자
  • 정규표현식 정리 블로그: https://tinyurl.com/2g2omnte

🐍 파이썬 | 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

반응형
저작자표시 비영리 변경금지 (새창열림)

'Problem Solving' 카테고리의 다른 글

[프로그래머스|파이썬] 옹알이 (1) (코딩테스트 입문/level 0)  (0) 2023.04.28
2023.02.22 ~ 2023.02.25 코딩테스트 이론 정리  (0) 2023.03.07
2023.02.19 ~ 2023.02.21 코딩테스트 이론 정리  (0) 2023.02.26
이코테 2021 강의 파이썬 문법 (헷갈리는 부분만 정리)  (0) 2022.06.23
알고리즘 사이트 모음  (0) 2021.07.28
'Problem Solving' 카테고리의 다른 글
  • [프로그래머스|파이썬] 옹알이 (1) (코딩테스트 입문/level 0)
  • 2023.02.22 ~ 2023.02.25 코딩테스트 이론 정리
  • 2023.02.19 ~ 2023.02.21 코딩테스트 이론 정리
  • 이코테 2021 강의 파이썬 문법 (헷갈리는 부분만 정리)
청량리 물냉면
청량리 물냉면
프로그래밍 공부를 하고 있습니다. 공부 내용 정리 겸 정보 공유를 목적으로 합니다.
    반응형
  • 청량리 물냉면
    노력중인 블로그
    청량리 물냉면
  • 전체
    오늘
    어제
    • 분류 전체보기 N
      • 프로그래밍 N
        • Programming
        • C | C++
        • Java N
        • Python
      • 웹 프로그래밍
        • HTML | CSS
        • JavaScript | TypeScript
        • React
        • Vue.js
        • Next.js
        • Spring & Spring Boot
        • JSP & Servlet
        • DB
      • 웹 프로젝트
        • 웹 프로젝트
        • 🥨스낵몰
        • 👨‍👨‍👧‍👧소셜 가계부
        • 🌜꿈 일기장
        • 🔮포트폴리오 사이트
        • 🏃‍♂️팀 프로젝트: 일정관리 프로그램
        • 📈팀 프로젝트: AI기반 주식 분석 플랫폼
        • 😺Just Meow It: 고양이의 조언
      • 앱 프로그래밍
        • Flutter
        • Kotlin
      • Problem Solving
        • 백준
        • 프로그래머스
        • SWEA
      • Computer Science
        • 알고리즘
        • 컴퓨터 네트워크
        • 이산수학
      • Developer
        • 후기
        • 자료정리
        • 취업 | 취준
        • 웹개발 교육 프로그램
        • TIL
  • 블로그 메뉴

    • 홈
    • Github
  • 공지사항

    • 프로그래밍 공부 중😊
  • 인기 글

  • 태그

    구현
    ZeroCho
    d3
    bfs
    클론 프로젝트
    SWEA
    뉴렉처
    자바스크립트
    프로젝트
    Til
    자바
    웹사이트
    알고리즘
    파이썬
    블로그 제작
    리액트
    Jiraynor Programming
    Next.js
    React
    컴퓨터네트워크
    AWS
    플러터
    공식문서
    강의내용정리
    spring boot
    백준
    타입스크립트
    프로그래머스
    mysql
    포트폴리오
  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
청량리 물냉면
2023.02.28 ~ 2023.03.17 코딩테스트 이론 정리
상단으로

티스토리툴바