Algorithm(62)
-
[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.3] 코딩테스트 고득점 Kit - 그래프 (1), 기본 개념, BFS/DFS + 가장 먼 노드 (Python)
📊 그래프가 뭔데? 그래프를 사전적으로 정의하면, "정점(노드)과 간선(엣지)으로 이루어진 자료구조"이다. 이 말을 이해하기 위해서는 정점(노드)은 뭔지, 간선(엣지)은 뭔지를 알아야 할 것이다. 설명해 보겠다. 노드(Node)는 예전 연결 리스트를 다루는 글에서 설명한 적이 있듯이, 하나의 데이터 단위를 나타내는 객체라고 이해하면 된다. 아래와 같이 SNS 구조를 나타내는 그래프가 있다고 했을 때, 영훈, 현승, 동욱과 같이 한 유저가 그래프 구조 안에서 하나의 노드라고 설명할 수 있겠다. 간선(엣지, Edge)는 그래프 내에서 두 노드 간의 연결 관계를 나타내는 데이터를 의미한다. 쉽게 설명해서 연결선. 그래서 두 노드 사이에 엣지가 있으면, 이때는 "두 노드는 인접해 있다."라고 표현하게 된다. 엣..
2023.09.24 -
[Programmers, Lv.2] 코딩테스트 고득점 Kit - 스택/큐 (2) (Python)
1. 올바른 괄호 (문제 설명, 제한사항, 입출력 예) 기호 "("와 ")"로만 이루어진 문자열이 주어졌을 때, 문자열이 올바른 괄호로 짝지어져 있으면 True를, 올바르지 않은 괄호로 짝지어져 있으면 False를 반환하라는 문제이다. 여기서 괄호가 올바르게 짝지어졌다는 것은 "(" 문자로 열렸으면, 반드시 ")" 문자로 닫히는 짝이 이루어져 있어야 한다는 것을 의미한다. (내가 생각한 풀이 과정) 문자열 s를 반복하면서 괄호를 체크한다. "("를 만나게 되면 카운트를 1 증가, ")"를 만나게 되면 카운드를 1 감소시켜 최종적으로는 카운트가 0이 되면 True를 반환한다. (-> 열린 괄호와 닫힌 괄호의 수가 같다는 것을 의미) 단, 여기서 추가적으로 열린 괄호가 없을 때 닫힌 괄호가 먼저 오는 경우를..
2023.09.22