알고리즘(45)
-
[Leetcode/Easy] 유효한 팰린드롬 (125. Valid Palindrome, Swift)
https://leetcode.com/problems/valid-palindrome/description/ 🤔 문제 설명주어진 문자열이 팰린드롬이면 true를 반환하고, 그렇지 않으면 false를 반환합니다.대소문자를 구분하지 않으며, 영문자와 숫자만을 대상으로 합니다. (영문자, 숫자가 아닌 문자는 모두 제거)참고) 팰린드롬이란 앞뒤가 똑같은 단어나 문장으로, 뒤집어도 같은 말이 되는 단어 또는 문장을 뜻합니다.(예시: '소주 만 병만 주소' -> 뒤집을 경우에도 '소주 만 병만 주소')"A man, a plan, a canal: Panama"# true ("amanaplanacanalpanama" is a palindrome.)"race a car"# false ("raceacar" "racaeca..
2024.06.27 -
[Python] 파이썬스럽게 코드 쓰기, Pythonic Code 내용 총정리
1. Overview, 파이썬 일반 코드와 파이썬스러운(Pythonic) 코드를 비교해보자!개발자라면, 빠질 수 없이 공부를 해야 되는 부분이 클린 코드와 관련된 점이다.이 클린 코드 관점에서 파이썬이라는 프로그래밍 언어는 굉장히 독특한 점을 갖고 있는데, 그것은 파이썬스러움이라는 단어를 보면 알 수 있다.파이썬스러운(Pythonic)이라 불리는 파이썬의 클린코드는 파이썬의 기능을 최대한 활용해서 코드를 짜는 것을 의미한다.사실 좋은 코드란 개념이 명확하게 딱 이거다 정해져 있는 것은 아니다.코드의 본질은 프로그램이 잘 동작하는 것이기 때문에.하지만, 여기에 본인을 포함한 다른 개발자가 읽기 쉽고, 유지보수까지 쉽다면, 가장 좋지 않겠는가.그래서 코드의 가독성과 일관성을 위해 우리는 파이썬스럽게(Pyth..
2024.05.04 -
[Programmers/Lv. 1] 크레인 인형뽑기 게임 (2019 KAKAO 개발자 겨울 인턴십, Python)
📎 링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🤔 문제설명, 제한사항, 입출력 예 "크레인 인형뽑기 게임"의 로직을 구현하는 문제다. 게임은 1x1 크기의 칸으로 이루어진 NxN 크기의 정사각 격자로 이루어진 화면에서 이루어지며, 위쪽에 인형을 잡기 위한 크레인과 크레인으로 잡은 인형을 담을 별도의 바구니가 있다. 모든 인형은 1x1 크기의 격자 한 칸을 차지하며, 격자 아래 칸부터 차곡차곡 쌓여있는 모습을 띤다. 사용자는 크레인을 좌우로 움직여서 가장 위에 있는 인형을 하나 집어 올릴 수 있으며, 이 집어 올린 인형은 바구니의 가장 아래 칸부터..
2023.11.06 -
[Programmers, Lv.2] 코딩테스트 고득점 Kit - 힙(Heap) (1), 더 맵게 (Python)
😳 힙(Heap) 기초 개념 간단하게 살펴보기 힙(Heap)이란? : "완전 이진트리"라는 형태적 속성과, "모든 노드의 데이터는 자식 노드들의 데이터보다 크거나 같다"는 힙 속성을 모두 만족시키는 자료구조이다. (즉, 힙을 이해하기 위해서는 트리를 먼저 알아야만 한다!) 그렇다면, 트리(Tree)란? : 데이터의 상-하 관계를 계층적으로 나타내는 자료구조이다. (말 그대로, 트리 모양을 생각하면 되겠다.)-> 맨 위에 있는 노드를 Root 노드, 트리 연결의 가장 마지막 노드를 Leaf 노드라고 부른다.-> 데이터의 상-하 관계를 부모 노드-자식 노드 관계라고 부르며, 같은 깊이에 있는 노드들끼리는 형제 노드라고 부른다. 트리의 종류는 어떤 것들이 있을까? 이진트리 (Binary Tree) : 각 노드..
2023.09.16 -
[Programmers, Lv.2] 코딩테스트 고득점 Kit - 해시 (2) (Python)
1. 전화번호 목록 (Level 2) (문제 설명, 제한사항, 입출력 예) 전화번호부에 적힌 전화번호를 담은 배열 phone_book이 주어질 때, 어떤 번호가 다른 번호의 접두어인 경우가 있으면 false를, 그렇지 않으면 true를 반환하라는 문제이다. 각 전화번호의 길이는 1 이상 20 이하이며, 같은 전화번호가 중복해서 들어있지는 않다고 한다. (내가 생각한 풀이 과정) phone_book 리스트에 담겨있는 전화번호를 하나씩 반복한다. 반복되는 요소와 바로 다음 요소를 비교할 건데, 접두어를 비교해야 하므로 해당 반복 요소 인덱스 i의 길이만큼 슬라이싱 후 비교한다. 만약, 두 글자가 같다면 접두어가 같다고 판단할 수 있다. -> False 반환 반복을 끝까지 해도 조건에 걸리지 않는다면, 같은 ..
2023.09.12