목록Study/Algorithm (400)
hwooo
https://school.programmers.co.kr/learn/courses/30/lessons/181846 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 처음엔 a와 b의 길이에 따라 경우를 나눠서 계산했는데, 다른 분의 풀이 중 길이를 맞춰서 계산하는 게 훨씬 코드가 깔끔해서 그 방식으로 바꿔서 풀었다. 먼저 문자열을 뒤집어 0번째 인덱스부터 계산하고자 했다. 이 때 짧은 문자열에 '0'을 넣어 긴 문자열과의 길이를 맞췄다.먼저 한 자리씩 정수형으로 계산했고, 이를 10 이하의 수로 만들어 정수형 배열에 저장했다.해당 배열을 문자열로 바꿔..
https://school.programmers.co.kr/learn/courses/30/lessons/181891 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 n만큼 위치를 바꿔주면 되는 문제로, 풀이를 보니 방법이 다양해 여러 가지 방법으로 풀어봤다. 코드 1 - 반복문 사용 #include #include using namespace std; vector solution(vector num_list, int n) { vector answer; for(int i = n; i < num_list.size(); i++) answer.push_bac..
https://school.programmers.co.kr/learn/courses/30/lessons/181913 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 알고리즘 헤더의 reverse 함수 사용. reverse(start, end)의 범위는 [start, end) 이므로 뒤집고자 하는 마지막 인덱스 값 +1을 해야 원하는 범위를 뒤집을 수 있다. 코드 #include #include #include using namespace std; string solution(string my_string, vector queries) { for(vec..
https://school.programmers.co.kr/learn/courses/30/lessons/181872 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 처음엔 myString의 뒷자리에서부터 for문을 시행해서 자릿수를 찾았는데, rfind() 함수가 있다는 걸 알고 그걸로 코드를 짜니 더 깔끔해졌다. 코드 #include #include using namespace std; string solution(string myString, string pat) { int len = pat.length(); int loc = myString.rf..
https://school.programmers.co.kr/learn/courses/30/lessons/42628 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 처음엔 우선순위 큐를 사용해서 풀려 했다.입/출력 값의 최대/최소값이 정해져 있지 않지만 answer이 int형이라 int형 범위 내에서 값이 들어올 것이라 생각했다. [처음 하려 했던 방식] - 오름차순과 내림차순 우선순위큐를 따로 만듦 - "D -1"일 땐 오름차순 큐에서, "D 1"일 땐 내림차순 큐에서 값을 제거 - 오름차순 큐의 값을 set에 저장하고 내림차순 큐의 값을 하나씩 삽입..
https://school.programmers.co.kr/learn/courses/30/lessons/181188 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 요격 미사일의 개수를 구하는 문제로, 미사일은 x축의 한 점이므로 범위로 판단해야겠단 생각을 못했다. 그래서 기준을 요격이 아닌 폭격 미사일의 범위로 잡았다.해당 범위 내에 다른 폭격 미사일의 범위가 겹친다면, 이는 하나의 요격 미사일로 요격이 가능하다.이를 이용하여 현재 미사일의 범위와 다음에 오는 미사일의 범위가 겹치지 않는 경우 요격 미사일(answer)의 갯수를 증가시키고, 현재 미..
https://school.programmers.co.kr/learn/courses/30/lessons/12953 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 a,b의 최소공배수는 a*b/a,b의 최대공약수이므로 이를 n번 반복한다. 코드 #include #include using namespace std; int get_GCD(int a, int b){ if(b == 0) return a; return get_GCD(b, a%b); } int solution(vector arr) { int gcd = arr[0], lcm = arr[0]; for..
https://school.programmers.co.kr/learn/courses/30/lessons/172928 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 입력받은 park 를 int형 2차원 배열로 옮겨서 계산했다. 이 때 시작 지점과 장애물을 표시했다. 이동 중에 장애물을 만나거나 공원의 범위를 벗어났는지를 확인하기 위해 입력 받은 방향으로 움직인 횟수만큼 이동하며 한 칸씩 움직일 때마다 해당 조건을 확인해주었다. 이 조건을 만족시킨 이동에서만 위치를 바꿔주었다. - 이동 방향을 처음엔 if문으로 일일히 지정해줬는데, 다른 사람의 풀이를 ..