문제https://www.acmicpc.net/problem/2792 소요 시간 : 1시간난이도 : 실버 2접근 방법1차 (틀린 풀이)M을 N개로 나누는 과정이라고 생각을 해보았었다. ex. N = 5, M = 2 (7, 4)M = 2 -> 3개로 만들기 위해 가장 큰 수인 7을 반으로 나눈다. 7, 4 -> 3, 4, 4M = 3 -> 4개로 만들기 위해가장 큰 수인 4를 반으로 나눈다. 3, 4, 4 -> 3, 2, 2, 4M = 4 -> 5개로 만들기 위해가장 큰 수인 4를 반으로 나눈다. 3, 2, 2, 4 -> 3, 2, 2, 2, 2 이때 가장 큰 값(3)이 질투심이라고 생각했다.하지만 이 방법은 N값의 범위가 최대 10억이기 때문에 시간초과가 난다.2차 질투심에 초점을 맞추었다. 질투심이 ..
코딩테스트
문제https://softeer.ai/practice/6293 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai 소요 시간 : 1시간난이도 : LV 3접근 방법 1. 완전탐색1. 모든 돌에서 출발해본다.2. 출발한 돌에서 다음 큰 돌을 모두 방문해본다. -> 시간복잡도 : O(2^N) ..터지는게 당연했다^^ 2. DPdp[i] = i 돌까지 도달하는데 제일 많이 밟을 수 있는 징검다리의 수 dp[i] = dp[j] + 1 이라고 할 때 j의 조건 : 1. i보다 작아야 한다. (왼쪽 돌)2. i번째 돌보다 j번째 돌의 크기가 작아야 한다. 이를 만족하는 j 중에서도 dp[j]가 가장 큰 걸 선택하면 된다. -> 시간복잡도 : O(N^2)나의 풀이1. 완전탐색#include#d..
문제https://school.programmers.co.kr/learn/courses/30/lessons/49191 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 소요 시간 : 1시간난이도 : LV 3접근 방법플루이드-와샬 방법을 변형한다. ⬇️ 참고 블로그에 자세하게 설명이 되어 있다.https://dev-musa.tistory.com/entry/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-Level-3-%EC%88%9C%EC%9C%84 프로그래머스 Level 3 순위순위 출처: 프로그래머스 https..
문제https://school.programmers.co.kr/learn/courses/30/lessons/12899 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 소요 시간 : 50분난이도 : LV 2접근 방법3진법과 유사하여 몫과 나머지를 이용해 숫자를 바꾸어주면 된다.자세한 설명 : https://yabmoons.tistory.com/692 다만 주의할 점은 124나라에는 3진법과 달리 0이 없다는 것이다. 0으로 나누어 떨어지는 경우 몫을 -1 해주고 나머지를 4로 변경해주면 124 나라에서 사용하는 숫자의 형태가 된다.아래는 1부터 15까지 이를 적..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/68645 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 소요 시간 : 44분 난이도 : LV 2 접근 방법 직접 달팽이를 그렸다.1. 하, 우, 좌상 방향을 반복한다.2. 범위를 넘어가거나, 가고자 하는 방향에 이미 숫자가 채워져있으면 방향을 전환한다.3. 가장 마지막 숫자를 판별..
문제https://school.programmers.co.kr/learn/courses/30/lessons/42746# 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr소요 시간 : 35분난이도 : LV 2접근 방법1. 순열순열을 이용하여 모든 경우의 수를 비교해본 후 가장 큰 문자열을 반환하였다. 2. 정렬2개의 문자열을 붙였을 때 큰 문자열이 되도록 정렬 함수를 구현하였다.ex. 30, 330+3 = 303 vs 3+30 = 30=> 3, 30 으로 정렬 나의 풀이1. 순열#include #include #include #include using names..
문제https://www.acmicpc.net/problem/1913 소요 시간 : 30분난이도 : 실버 3접근 방법1. (0, 0) 부터 N^2의 수를 역순으로 1까지 채워나간다.2. 방향은 하, 우, 상, 좌를 번갈아서 채운다.방향을 바꾸는 시점은 아래 2가지이다. - x, y가 0보다 작거나 N과 같을 경우- 가려는 곳에 이미 숫자가 채워져있을 경우 나의 풀이#include #include using namespace std;int map[1000][1000];int N, X;int dy[4] = {1, 0, -1, 0};int dx[4] = {0, 1, 0, -1};int main() { cin >> N; cin >> X; int dirIdx = 0, x = 0, y = 0; ..
문제https://www.acmicpc.net/problem/1764 소요 시간 : 17분난이도 : 실버 4접근 방법1) map 이용한 방법 1. 이름-개수 를 저장한 map을 만든다.2. 듣도못한사람, 보도못한사람을 입력받아 개수를 늘려준다.3. 개수가 2인 것만 리스트를 만든다. 2) 정렬&포인터 이용한 방법1. 듣도못한사람, 보도못한사람의 리스트를 만든다.2. 각 리스트를 사전 순으로 정렬한다.3. 각 리스트를 반복하는 인덱스를 만든다.4. 2개의 인덱스를 비교하면서이름이 같으면 듣도보도못한사람 리스트에 넣고, 이름이 사전순으로 작으면 인덱스를 하나 올려 다음 것과 비교하도록 한다.나의 풀이1) map 이용한 방법 - 메모리 : 12856 KB- 시간 : 124ms#include #include #..
문제https://www.acmicpc.net/problem/15685소요 시간 : 1시간난이도 : 골드 3접근 방법구현/시뮬레이션 이다. 1. 드래곤 커브의 규칙을 찾는다. 드래곤 커브를 그려서 방향을 나열해보면 0세대 : 01세대 : 0 12세대 : 0 1 2 1 3세대 : 0 1 2 1 2 3 2 1 ... n세대 : n-1세대 + (n-1세대 역순에 1씩 더한 것) 이라는 것을 알 수 있다. ex. 1세대 : 0 12세대 : 0 1 1+1 0+1 = 0 1 2 1 이러한 규칙을 바탕으로 드래곤 커브의 방향 정보들을 가지고 있는다. 2. 입력받은 시작점에서 위의 드래곤 커브의 방향 정보에 따라 움직이고 방문한 곳은 1로 변경한다.3. 전체 맵을 돌면서 현재 점과 우, 우하, 하단의 점이 모두 방..
문제https://www.acmicpc.net/problem/2346소요 시간 : 35분난이도 : 실버 3접근 방법구현을 이용하였다. 1. N 사이즈의 정수 배열에 입력받은 풍선 안의 수를 저장한다. (0 ~ N-1)2. 이동하는 함수를 만든다. - 풍선의 번호에 따라 방향을 지정한다.- 풍선 안의 수만큼 while문을 통해 이동한다. - 풍선이 터져있는 경우 세지 않는다. - N보다 커지면 안되므로 나머지 연산을 이용한다. - 0보다 작아지면 안되므로 0보다 작을 경우 N-1로 이동한다.3. N만큼 이동하여 모든 풍선을 터트린다.나의 풀이#include using namespace std;int balloons[1000];int N;int moveIdx(int idx, int num) { ..