본문 바로가기

코딩테스트166

[python] 백준 2442 - 별 찍기 5 📍 백준 2442 - 별 찍기 5 백준 2442 - 별 찍기5 ⚡️ 나의 풀이 올바르게 제출했다고 생각하는데 오답판정을 받았다. 왜냐하면 '*'뒤는 값이 없어야하는데 공백으로 채워진 '값'으로 처리됐기 때문이다. formatting 함수로 구현했는데, formatting함수는 값 앞뒤를 모두 공백으로 채워준다. 따라서 값 앞에만 공백으로 채울 수 있는 ' ' * (n-i)식을 사용하자. n = int(input()) for i in range(1, n+1): print(' ' * (n-i) +'*'*((2*i)-1)) 2021. 4. 5.
[python] 백준 2920 - 음계 📍 백준 2920 - 음계 백준 2920 - 음계 ⚡️ 나의 풀이 처음에 c d e f g a b C를 각각 1, 2, 3 ... 8의 숫자로 변경한다고 써있길래 ord()함수를 사용하여 c ~ g까지는 ord(i) - 98 a ~ b까지는 ord(i) - 91 C는 ord(i) - 59 조건을 세워 1~8까지 나오게 만들어야하나?라고 생각했는데, 예제 입력을 보니까 알파벳이 아닌 숫자가 들어갔다. 곰곰이 생각하다가 그럼, result = [1, 2, 3, 4, 5, 6, 7, 8]을 선언하고 result와 같을 때 result[::-1]와 같을 때 else일 때 처럼 풀면안되나? 하고 코드를 제출했는데 정답판정을 받았다. 😃 😃 더욱 간단하게 푸는 방법을 찾아 좋았다. n = list(map(int, .. 2021. 4. 5.
[ 자바스크립트(JS), 파이썬(python) ] 프로그래머스 level1 - x만큼 간격이 있는 n개의 숫자 📌 x만큼 간격이 있는 n개의 숫자 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴하는 함수를 만드시오. 제한 조건 x는 -10000000 이상, 10000000 이하인 정수입니다. n은 1000 이하인 자연수입니다. 1️⃣ 파이썬(Python) 풀이 x가 -10000000 이상, 10000000이하인 정수이므로, 계산 방법을 양수일 때, 음수일 때로 나눴다. 또, 이 문제는 while, range로 풀 수 있는데, 코드를 짧게 만들고 싶어 한 줄로 요약하려다가 실패하고 while문으로 풀었다.(그냥 양수, 음수별로 나눠서 range로 작성했으면 더 짧았을 텐데...) 코드 순서대로 풀이방법은 다음과 같다. while: 기존 number = number .. 2021. 4. 5.
[ 자바스크립트(JS), 파이썬(python) ] 프로그래머스 level1 - 최대공약수와 최소공배수 📌 최대공약수와 최소공배수 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 💡 나의 풀이 최대공약수와 최소공배수의 문제는 유클리드 호제법(Euclidean algorithm)을 이용하면 간단하게 해결 할 수 있다. 유클리드 호제법(Euclidean algorithm)의 정의는 다음과 같다. 2개의 자연수(또는 정식) a, b에 대해서 a를 b로 나눈 나머지를 r이라고 하면(단, a>b), a와 b의 최대공약수는 b와 r의 최대공약수와 같다. 다음 사진과 같은 과정을 거치면 손쉽게 최대공약수(GCD)를 구할 수 있는데, 최대공배수(LCM)는 처음 a * b값에 GCD로 나눠주면 된다. 이 문제의 팁을 작성하자면 최소공배수를 구할 때 처음 입력받은 a와 .. 2021. 4. 5.
[ 6. 문자열 조작 ] - 가장 흔한 단어(Most Common Word) 📍 가장 흔한 단어(most common word) 금지된 단어를 제외한 가장 흔하게 등장하는 단어를 출력하라. 대소문자 구분을 하지 않으며, 구두점(마침표, 쉼표 등)또한 무시한다. ⚡️ 나의 풀이 입력값 전처리(preprocessing)과정 중 구두점(punctuation)을 제거하는 방법에서 시간을 많이 쏟았는데, 결론적으로 string.punctuation 문자열 함수를 사용하면 쉽게 해결 할 수 있다. 이 방법외에도 정규식(regular expression)을 사용해도 되는데 오히려 string.punctuation보다 간편해 보였다. 자주 사용하도록 외워둬야겠다. 정규식에서 \w는 단어 문자(word character)을 뜻하며, ^는 not을 의미한다. (re.sub(r'[^\w]', ' '.. 2021. 4. 4.