코딩테스트 연습 - 안전지대 | 프로그래머스 스쿨 (programmers.co.kr) for문을 두 개 돌려서 0이 나오면 숫자를 올리고 1이 나오면 숫자를 내려야지 했는데 답이 이상하게 나와서 다시 읽어보니 1 주변으로 다 안전지대에서 제외되는 거구나... 좌우면 몰라도 상하 대각선은 어떻게 찾지.. def solution(board): zero, one = 0, 0 for i in board: for j in i: if j == 0: zero += 1 elif j == 1: one += 1 if one > 0: zero = zero - 8 one = 0 if zero < 0: zero = 0 return zero 이렇게 하니까 한 줄에 여러 1이 있는 경우를 커버하지 못 한다.. 딱 1번째 예시만 통..
코딩테스트 연습 - OX퀴즈 | 프로그래머스 스쿨 (programmers.co.kr) 일단..문자열로 된 수식을 어떻게 계산하느냐.. 구글링 ㄱㄱ 참고블로그: 파이썬으로 문자열로된 식을 계산하기(eval 함수) (tistory.com) 바로 나왔다 eval()이라는 함수가 있다 이 문제는 =을 기준으로 수식과 답이 써있으니까 split을 쓰면 되는 걸까..? def solution(quiz): answer = [] for q in quiz: cal = q.split("=") formulra = cal[0].rstrip() result = cal[1].lstrip() formula_result = eval(formulra) if result == formula_result: answer.append("O"..
코딩테스트 연습 - 겹치는 선분의 길이 | 프로그래머스 스쿨 (programmers.co.kr) 일단 선분끼리 비교를 해야 하는데 일단 선분의 시작점을 기준으로 정렬을 해야 할 것 같다 start가 작은 수가 맨 앞으로 오게 정렬을 하고 그 상태에서 각 선분끼리 비교를 한다 끝점과 시작점을 비교해서 시작점이 끝점보다 작으면 겹치게 된다 그 경우 끝점에서 시작점을 뺀 수를 result에 넣고 다시 선분끼리 비교를 해서 또 그런 걸 찾는데.. 일단 그림을 그려보니까 1번째 선분이랑 2번째 선분 비교해서 겹치는 값과 2번째 선분이랑 3번째 선분 비교해서 겹치는 값을 더하고 1번째 선분이랑 3번째 선분이 겹치는 값을 빼면 3번째 예시가 되긴 되거든... 일단 그렇게 해보자... 안 된다.......이게 아닌가보..
코딩테스트 연습 - 영어가 싫어요 | 프로그래머스 스쿨 (programmers.co.kr) 이것도 일단 딕셔너리를 활용하면 좋을 것 같고... en_to_num = { "zero":0, "one":1, "two":2, "three":3, "four":4, "five":5, "six":6, "seven":7, "eight":8, "nine":9, } for문을 돌려서 일치하는 값이 있으면 replace함수를 써서 숫자로 바꾸면 되려나? 일단 numbers를 for문을 돌리면 스펠링 하나하나 나온다 for num in numbers: print(num) o n e f o u r z e r o s i x s e v e n 이렇게 스펠링 하나씩 나온다 이걸 새로운 변수에 더해주고 if문으로 딕셔너리 안에 새로운..