프로그래머스 - 대소문자 바꾸기 - C++ Python

프로그래머스 대소문자 바꾸기 문제 바로가기 알고리즘 공부를 하다보니 여러 가지 풀이를 참고하기 위해서는 C++도 공부하는게 좋다는 생각을 하게 되었다. 특히 LeetCode 같은 경우 Python에 비해서 C++이 고품질의 자료도 많고 시간 제약에서도 여유로워질 수 있어서 새로운 언어를 공부하기로 했다. Pointer 개념 말고는 생각보다 문법이 유사해서 기본 문법은 두 시간 정도만에 익힐 수 있었다. (라이브러리 익히는데는 경험치가 많이 필요하겠지만) C++에 대해서는 여러 책들과 강의들이 많지만 개인적으론 간단하게 익히는 선에서는 W3Schools Tutorial가 좋았다. 기본 문법을 익힌 다음에 쉬운 문제에서부터 풀어보기로 했다. 프로그래머스 기준으로 Lv.0 문제에서부터 시작해서 꾸준히 풀어볼 계획이다. ...

2023-8-7 · 2 min · 219 words · Junha

백준 1924번 - 2007년

백준 1924번 바로가기 나의 풀이 # 입력 import sys from datetime import datetime x, y = map(int, sys.stdin.readline().split()) days = ['MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT', 'SUN'] # 처리 today = datetime(2007, 1, 1) target = datetime(2007, x, y) dday = (target-today).days print(days[dday%7]) CODE REVIEW 간만에 숨돌리기 용으로 푼 간단한 수학 문제. 아니 구현 문제. 참고로 2007년에는 1, 3, 5, 7, 8, 10, 12월은 31일까지, 4, 6, 9, 11월은 30일까지, 2월은 28일까지 있다.라는 문제조건이 있긴 하지만 범용적으로 쓰는 datetime 모듈을 활용해서 풀어내었다. 이전에 짭군돌이 만들었을 때에 dday 구했던 기억이 난다. month = [31, 28, 31, 30 ... ]로 해서 month 인덱싱으로 풀 수도 있겠지만 웬만하면 datetime 씁시다 ㅎㅎ

2023-6-8 · 1 min · 108 words · Junha

프로그래머스 - x만큼 간격이 있는 n개의 숫자

x만큼 간격이 있는 n개의 숫자 문제 바로가기 나의 풀이 def solution(x, n): answer = [] for i in range(n): answer.append(x*(i+1)) return answer CODE REVIEW 간단한 구현 문제. range만 잘 따져주면 된다.

2023-5-30 · 1 min · 31 words · Junha

프로그래머스 - 두 원 사이의 정수 쌍

두 원 사이의 정수 쌍 문제 바로가기 첫 번째 풀이 def solution(r1, r2): answer = 0 for i in range(-r2,r2+1): for j in range(-r2,r2+1): if r1**2 <= i**2 + j**2 <= r2**2: answer += 1 return answer 두 번째 풀이 def solution(r1, r2): answer = 0 for i in range(1,r2+1): for j in range(1,r2+1): if r1 <= (i**2 + j**2)**0.5 <= r2: answer += 1 answer = (answer + r2 - r1 + 1)*4 return answer 세 번째 풀이 from math import ceil, floor def solution(r1, r2): answer = 0 for x in range(1,r2+1): y_top = floor((r2**2-x**2)**0.5) b_bot = ceil((r1**2-x**2)**0.5) if x<=r1 else 0 answer += y_top - b_bot + 1 return answer * 4 CODE REVIEW 첫 번째 풀이에서는 일부 테스트에서 시간 초과에러가 5개에서 발생해서 실패했다. 1사분면만 구하고 4배 취해야겠다… 두 번째 풀이에서는 사분면만 먼저 계산하고 4배해주었는데 여전히 시간초과 에러가 3개 발생한다. 이중 for문이라 그런듯… 구조를 아예 바꿔야하나? 세 번째 풀이에서는 이중 for문을 피하기 위해 x값을 기준으로 최대/최소 y값을 구해서 갯수를 구했다. 결국 해결 완료! 시간 초과 쉽지 않구만 허허…

2023-5-30 · 1 min · 171 words · Junha

프로그래머스 - 짝수와 홀수

짝수와 홀수 문제 바로가기 나의 풀이 def solution(num): answer = 'Odd' if num % 2 == 0: answer = 'Even' return answer CODE REVIEW 간단한 구현 문제. 나눗셈을 할 때에 나머지는 % 몫은 //을 사용하면 된다.

2023-5-30 · 1 min · 36 words · Junha