- Total
목록오뚝이 개발자/알고리즘 (27)
꿈꾸는리버리
공원 산책 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1차 실패 : 문제 이해 X 문제 중 다음과 같은 내용이 있었는데, 🌟 표시한 내용을 내가 대충 읽고 넘긴 탓에 고생을 했다. 단순하게 [0,0] 에서 ["E 2"]가 나오면 [0,2] 부분의 영역만 공원 밖으로 나가는지, 장애물인지 확인을 해서 코드를 짰었는데, 예제 2번이 틀려서 입출력 설명을 읽어보니 문제에서 설명하는 바를 놓쳤음을 알게 되었다. 문제를 꼼꼼히 읽자. 예를 들어 "E 5"는 로봇 강아지가 현재 위치에서 동쪽으로 5칸 이동했다는 의미입니다. 로봇 강아지는 명령을 수행하기 ..
추억 점수 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 달리기 경주 문제와 동일하게 Dictionary(uniqueKeysWithValues: zip(A,B))를 활용하면 쉽게 풀 수 있는 문제라고 생각했고, 코드 구현하고 1차 테스트 만에 완료해서 뿌듯.. 했었다. import Foundation func solution(_ name:[String], _ yearning:[Int], _ photo:[[String]]) -> [Int] { let missingPointDic = Dictionary(uniqueKeysWithValues..
알고리즘 공부 시작한 이유 취업을 위해서 알고리즘 공부를 꾸준히 해야 함을 느끼고 있다. 특히나,, 요즘 알고리즘 수업을 듣고 있는데 교수님이 너무 잘 가르쳐주셔서 군침이 싸악 도는 중이다. 파이썬으로 학교 수업을 해서 파이썬으로 알고리즘을 공부해야 하나 했는데, iOS 개발자가 되기로 했고 알고리즘을 잘 하기 위해서는 언어에도 친숙해질 필요가 있음을 느꼈기 때문에, swift를 선택하게 되었다. 재작년에는 알고리즘이 조금 멀게만 느껴졌었고, 작년에는 좀 더 잘하고 싶은 마음이 급급했던 것 같다. 그래서 올해는 다시 처음부터 다시 배운다는 느낌으로 차근차근 알고리즘 공부를 해볼 생각이다. 지금 내가 느낀 문제는 알고리즘 수업 덕분에 머릿속에는 그래도 약간 어떻게 해야할지에 대해 알고리즘 수도 코드가 생각..
문제 https://www.acmicpc.net/problem/10972 10972번: 다음 순열 첫째 줄에 입력으로 주어진 순열의 다음에 오는 순열을 출력한다. 만약, 사전순으로 마지막에 오는 순열인 경우에는 -1을 출력한다. www.acmicpc.net 풀이방법 아래는 12345가 입력으로 들어왔을 때 사전순으로 다음에 오는 순열을 구하는 프로그램의 일부이다. 당연한 말이지만,, 아래 flow의 규칙성을 찾아야 한다. 12345 12354 12435 12453 12534 12543 13245 13254 ... 54321 이 사전순으로 다음에 오는 순열을 구하는 프로그램에는 다음과 같은 규칙이 있다. 작성한 코드는 다음과 같다. import Foundation let N = Int(readLine()!..
문제: https://www.acmicpc.net/problem/15649 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 풀이방법: 💡 배열(스택)과 재귀을 이용해서 DFS 구현 DFS? 재귀? 배열(스택)? 우선 차근차근 알아가보자. DFS 링크의 예제 3을 예시로 다뤄보려 한다. 빨강) 1로 첫번째 자리가 고정되었을 때 두번째 자리의 값이 2, 3, 4 이렇게 숫자가 바뀌는 것을 알 수 있다. 두번째 자리가 2로 시작하는 모든 경우의 수를 찾은 후에 두번째 자리의 값은 3으로 바뀐다. 파랑) 이 과정은..
문제: https://www.acmicpc.net/problem/6064 6064번: 카잉 달력 입력 데이터는 표준 입력을 사용한다. 입력은 T개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 입력 데이터의 수를 나타내는 정수 T가 주어진다. 각 테스트 데이터는 한 줄로 구성된다. www.acmicpc.net 풀이방법: M N x y 10 12 3 9 문제를 식으로 정리하면 M, x : ( k-x ) % M = 0 N, y : ( k-y ) % N= 0 를 만족하는 k의 값을 구하는 문제이다. ( k-x ) % M = 0을 만족하는 첫번째 식인 k = x일 때부터 k = x + M , k = x + 2M, ...이렇게 k에 M을 증가시키며 계산을 한다. 그리고 만약 이 k가 ( k-y ) % N =..
문제: https://www.acmicpc.net/problem/3085 3085번: 사탕 게임 예제 3의 경우 4번 행의 Y와 C를 바꾸면 사탕 네 개를 먹을 수 있다. www.acmicpc.net 문제의 이해 기존의 행렬에서 CKP KCP KPC 1행의 [0]과 [1]을 swap 했을 때 KCP KCP KPC -> 원래 코드에서는 사탕의 최대 개수는 2인데, 1행의 [0]과 [1]을 swap을 한다면 사탕의 최대 개수는 3이 된다. 풀이방법: 1) 원래 코드의 사탕의 최대 개수 구하기 2) 행 swap 후 사탕의 최대 개수 구하기 3) 열 swap 후 사탕의 최대 개수 구하기 참고 Point 1) "CCP"처럼 붙어있는 문자열 떼어내서 Char 저장하기 array2.append(r..
[백준 알고리즘] 1107 리모컨 문제: https://www.acmicpc.net/problem/1107 1107번: 리모컨 첫째 줄에 수빈이가 이동하려고 하는 채널 N (0 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 고장난 버튼의 개수 M (0 ≤ M ≤ 10)이 주어진다. 고장난 버튼이 있는 경우에는 셋째 줄에는 고장난 버튼 www.acmicpc.net 풀이방법: 1) 현재 번호 100에서 ( +,- 클릭 횟수 ) 2) 가고 싶은 채널 근처에서 가려는 채널로 가기 ( 채널 번호 클릭 횟수 & +,- 클릭 횟수 ) Tips 2)을 구할 때 0 ~ 500000가 아니라 0 ~ 1000000까지 고려해야 함 수빈이가 원하는 최대 채널은 500000이지만, 티비 채널은 무한대로 존재 예를 들어 수..