본문 바로가기

백준11

[python 백준 1541] 잃어버린 괄호 📜 접근 방법 주어진 식에 적절하게 괄호를 넣어야한다. 조건1. 식의 값을 최소로 만들어야한다. 조건2. 식은 0~9, +, - 로만 이루어져 있다. 식의 값을 최소로 만들기 위해선 -하는 값을 최대로 만들어주면 된다. 그러기 위해선, -를 기준으로 그 다음 -가 나오기 전까지, 뒤에 +인 값들을 다 더한 후 빼주면 최소값이 된다. 즉, 괄호는 -하는 부분부터 그다음 -하기 전까지 넣어주면 된다. ex) 괄호 전 : 35+35-34+21-46+34+43-45 괄호 후 : 35+35-(34+21)-(46+34+43)-(45) 문제 푼 방법 1. 식을 "-"를 기준으로 나누어준다. 2. 나눈 것을 "+"가 있을 경우 모두 더한 후 빼준다. 3. 반복 그러나 가장 처음 문자는 숫자이기에 "+"해줘야하므로 if.. 2023. 2. 2.
[python 백준 1439] 뒤집기 📜 접근 방법 주어진 숫자를 보고 두가지로 나눴다. 1. 모든 숫자를 0으로 뒤집을 경우 (ex)000000) 2. 모든 숫자를 1로 뒤집을 경우 (ex)111111) 위의 경우를 보고 첫번째의 경우: 1이면 count + 1 두번째의 경우 : 0이면 count + 1 단, 이전 숫자가 현재 숫자와 같으면 count하지 않는다. (연속되는 수가 같을 경우) ex) 0001100 첫번째 경우 4번째(1)에서 count한다. 5번째(1)에선 이전 숫자(1)가 같기 때문에 count 안한다. => 총 1번 두번째 경우 첫번째(0)에서 count한다. + 1 두번째, 세번째에선 count 하지 않음(이전 숫자와 같으니 이미 count가 되어있음) 6번째(0)에서 count한다. + 1 6번째(0)에서 count.. 2023. 1. 25.
[python 백준 5052] 전화번호 목록 접근 방법 숫자 갯수가 작은 순으로 정렬 문자열로 변환 정렬된 순서로 특정 전화번호와 다른 전화번호들을 비교(특정 전화번호 갯수까지 잘라서 그부분만 비교) 같을 경우 YES 출력 후 종료 다를 경우 3번 반복 실패 코드(시간초과) import sys t = int(sys.stdin.readline()) for i in range(t): n = int(sys.stdin.readline()) phone_list = [int(sys.stdin.readline()) for i in range(n)] phone_list.sort() phone_list = list(map(str, phone_list)) index = 0 check = 0 while index < n - 1: if check: break phone.. 2023. 1. 16.