본문 바로가기

728x90

IT 일기/코테

n*n 2차원 배열 달팽이 알고리즘 - 파이썬 n이 홀수인 경우 그리고 n*n인 2차원 배열인 경우에만 사용할 수 있는 코드 일듯하다. 달팽이가 벽에 부딪히거나 방향을 바꿔야 하는 경우 바뀔 방향은 고정적이라는 특성을 활용했다. import copy n = int(input()) arr = [[0 for _ in range(n)] for _ in range(n)] dx = [0,-1,1,0,0] dy = [0,0,0,-1,1] check_arr = copy.deepcopy(arr) check_arr[0][0] = 1 move_path_back=[[0,0,2]] move_path_start=[[n//2,n//2,1]] while True: before = move_path_back[-1] way = before[2] curr = [before[0]+d.. 더보기
임의의 요소의 값보다 요소의 값이 다 작은 경우가 한번이라도 있다면? 프로그래머스 인사고과 문제의 포인트이다 완호네 회사는 연말마다 1년 간의 인사고과에 따라 인센티브를 지급합니다. 각 사원마다 근무 태도 점수와 동료 평가 점수가 기록되어 있는데 만약 어떤 사원이 다른 임의의 사원보다 두 점수가 모두 낮은 경우가 한 번이라도 있다면 그 사원은 인센티브를 받지 못합니다. [[2,2],[1,4],[3,2],[3,2],[2,1]] 이런 배열의 경우 4번째 요소인 [2,1]은 2번째,3번째 요소보다 모든 요소의 값이 작기 때문에 걸러진다. 이제 최대 100000개의 요소가 들어있는 배열에서 요소들을 걸러야 하는데 10만개라서 N^2으로는 풀이를 할 수 없다. 하지만 정렬을 이용하면 N으로 풀이가 가능하다. 첫번째 요소를 기준으로 내림차순 정렬, 두번째 값 기준으로 오름차순 정렬을.. 더보기

728x90