본문 바로가기

Problem-solving119

백준 - 한수(1065번) (Python3) import sys sys.setrecursionlimit(10000) # 1000 이하의 자연수 N 입력받음 (문자열 형태) N = input() total_count_of_han_number_int = 0 # 현재 문자열 형태의 숫자가 한수인지 체크 def is_han_number(number_to_check_str): if len(number_to_check_str) == 1: return True diff = int(number_to_check_str[1]) - int(number_to_check_str[0]) for num_index in range(1, len(number_to_check_str) - 1): if int(number_to_check_str[num_index + 1]) - \ i.. 2020. 5. 13.
부르트 포스(Brute Force) 무식하게 일일이 푸는 방법 for문쓰지말고 재귀로 base case(기저 사례) 설정을 잘 해야 한다. 중복 방지 특정 형태를 갖는 답만을 센다. ex) 사전순 특정한 순서대로 답을 생성하도록 강제한다. ex) 빈 칸 중에서 가장 윗 줄, 가장 왼쪽에 있는 칸을 처리. 2020. 5. 13.
프로그래머스 - (2018 KAKAO BLIND RECRUITMENT) [1차] 프렌즈4블록 (Python) def solution(height, width, board_list): answer = 0 # board_list를 90도 회전시킨 새로운 리스트 new_board_list를 구한다. new_board_list = list(map(list, zip(*(reversed(board_list))))) # # 테스트 프린트 # print("초기 블록 배열 테스트 프린트") # for col_line_index in range(len(new_board_list)): # for height_index in range(len(new_board_list[col_line_index])): # print(new_board_list[col_line_index][height_index], end=' ') # print() .. 2020. 5. 9.
프로그래머스 - (2018 KAKAO BLIND RECRUITMENT) [1차] 뉴스 클러스터링 (Python) import re from collections import Counter def solution(str1, str2): answer = 0 # 문자열들을 모두 소문자로 변환 str1 = str1.lower() str2 = str2.lower() multiset1 = Counter() multiset2 = Counter() # 두 글자씩 끊어서 multiset에 추가. # 단, 글자중에서 둘다 영문자가 아니면 버림. # 길이가 2인 문자열의 두 문자가 모두 알파벳인 정규표현식 str_pattern = re.compile("^[a-zA-Z]{2}$") # str1의 문자를 맨 앞부터 2개씩 검사 for i in range(len(str1) - 1): tmp_str = str1[i:i+2] # 정규표현식에 .. 2020. 5. 8.