본문 바로가기
반응형

전체 글571

[프로그래머스 programmers] 같은 숫자는 싫어 programmers.co.kr/learn/courses/30/lessons/12906 코딩테스트 연습 - 같은 숫자는 싫어 배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 programmers.co.kr 난이도: lv1 간단한 문제지만 다른 문제에 활용될 수 있을 듯하다. 답 리스트가 비어있거나, 마지막 요소와 다를 때 값을 넣어준다. def solution(arr): answer = [] for char in arr: if not answer or answer[-1]!=char: answer.append(char) return answer 다른 사.. 2021. 4. 26.
[프로그래머스 programmers] 신규 아이디 추천 programmers.co.kr/learn/courses/30/lessons/72410 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 programmers.co.kr def solution(new_id): new_id = new_id.lower() re = '' for char in new_id: if char.isalnum() or char in "-_.": re += char del_dot = '' for char in re: if not del_dot: del_dot += char continue if del_dot[-1]==.. 2021. 4. 25.
[프로그래머스 programmers] 크레인 인형뽑기 게임 programmers.co.kr/learn/courses/30/lessons/64061?language=python3 코딩테스트 연습 - 크레인 인형뽑기 게임 [[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]] [1,5,3,5,1,2,1,4] 4 programmers.co.kr def solution(board, moves): stack = [] for move in moves: place = move-1 catch = 0 for i in range(len(board)): if board[i][place]!=0: catch = board[i][place] board[i][place]=0 break if catch !=0: stack.append(.. 2021. 4. 25.
[코딩테스트] 오답노트 반드시 연필로 설계를 먼저 하고 코드를 짜기 불안해서 코드부터 무작정 시작하면 오히려 더 꼬임. 경험에서 우러나옴 - 문제에서 1부터 시작하는 번호가 있는지확인 - 2차원 배열에서 [i][j] 순서 헷갈 ㄴㄴ - if 또는 while에서 조건을 찾고 break 빼먹지 말기 - 한번 시행 후 뒷처리 조건 빼먹지 말기 - 자료형 잘 확인하여 통일!! 특히 문자열로된 숫자는 자주 헷갈림 - 브루트 포스를 하는 과정에서 안에 for문 하나를 사용했는데 이 인자를 i로 놓는 바람에 엄청 꼬이고 헤맸다. 인자가 겹치지 않도록 주의!! - 구현문제나 그래프 문제에서 map[nx][ny]를 계속 map[x][y]로 해서 틀리고 원인을 못 찾는 경우가 많다. 조심하자. - 그래프나 맵을 만들 때는 2차원 리스트를 형성하.. 2021. 4. 25.
kakao 2020 코딩테스트 기출문제 - 문자열 압축 programmers.co.kr/learn/courses/30/lessons/60057 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문 programmers.co.kr 풀긴 했지만 꽤 오래걸려서 실전이었으면 못 풀었을 것 같다... def solution(s): result = [] for unit in range(1, len(s) + 1): # unit(int) means the length of unit length = 0 word = '' show = 0 start = 0 for _ in range(len(s)//unit): p.. 2021. 4. 22.
[알고리즘 algorithm] 플로이드-워셜 Floyd-Warshall 알고리즘 개념과 예제 그래프 알고리즘에는 대표적으로 다익스트라 알고리즘, 플로이드-워셜 알고리즘이 있다. - 다익스트라 vs 플로이드-워셜 이 둘의 차이점은 다익스트라는 한 노드에서 다른 특정 노드까지의 최단 경로를 구할 때 사용되고, 플로이드-워셜은 모든 노드에서 다른 모든 노드까지의 최단 경로를 구할때 사용된다. 우선순위큐를 활용하여 구현한 다익스트라의 시간복잡도는 O(ElogV)이다. 이때 V는 노드의 개수, E는 간선의 개수이다. 반면 플로이드-워셜은 시간복잡도가 O(n3)이다. n번의 탐색동안 n2번 값을 비교하여 업데이트해준다. 또한 다익스트라는 그리디 알고리즘인데 플로이드-워셜은 다이나믹 프로그래밍이라는 특징이 존재한다. - 플로이드-워셜 알고리즘의 개념 플로이드- 워셜의 결과는 항상 2차원 배열이다. 모든 노드.. 2021. 4. 21.
반응형