목록Programmers (190)
GitHubSeob
문제 https://school.programmers.co.kr/learn/courses/30/lessons/178871 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 이름을 입력하면 등수를 알려주는 map인 name_num을 선언, 등수를 입력하면 이름을 알려주는 map인 num_name을 선언한다. 이름이 불린 선수들이 있는 callings 벡터를 탐색하면서 각각의 정보를 불러와 num, name, prev_name, prev_num에 값들을 저장한다. 그다음 서로 값들을 바꿔준다. 모든 탐색이 끝났으면 answer에 추가해 주고 return..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/172928 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 가는 길에 장애물이 있으면 왔던 길을 되돌아가고 다음 명령을 탐색한다. park에서 'S'인 현재위치를 answer[0], answer[1]에 y, x값을 저장한다. routes[idx][0]은 방향을, routes[idx][2]는 칸 수를 알려준다. 해당 방향으로 한칸 한 칸 가면서 주어진 맵의 좌표를 벗어나는지, 장애물이 있는지 판단한다. 없으면 기존 y, x값에 해당 방향으로..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/147355 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 먼저 string s에 p의 크기만큼 t[idx]를 입력받고 num 벡터에 저장한다. idx를 1로 두고 idx + p.size() -1 가 t크기 보다 작을 때까지 탐색한다. (idx + p.size() -1 은 s의 끝자리 위치를 의미한다) s의 첫 글자를 지우고, 새 글자를 하나 더하고 num 벡터에 저장한다. 탐색이 끝났으면 num 벡터를 탐색하면서 p이하인 수가 있을 때마..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/131705 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 현재 위치, 고른 개수, 번호의 합을 인자로 받는 DFS함수를 만들어서 풀었다. 3개를 골랐으면 세 명의 번호 합이 0인지 판별하고 맞으면 답을 출력하는 변수에 1을 더한다. 현재 위치가 끝나지 않았으면 DFS(x+1, cnt, sum)을 해서 현재 학생을 포함 안 하는 경우를, DFS(x+1, cnt+1, sum+num[x])을 해서 현재 학생을 포함하는 경우를 탐색한다. 코드 ..
문제 https://programmers.co.kr/learn/courses/30/lessons/87946 코딩테스트 연습 - 피로도 XX게임에는 피로도 시스템(0 이상의 정수로 표현합니다)이 있으며, 일정 피로도를 사용해서 던전을 탐험할 수 있습니다. 이때, 각 던전마다 탐험을 시작하기 위해 필요한 "최소 필요 피로도"와 던 programmers.co.kr 문제풀이 완전탐색으로 문제를 풀었다. visited벡터를 이용해 idx번째 던전을 방문했는지 판별을 한다. 방문을 하지 않은 던전이라면 해당 던전을 무시하고 다음 던전을 탐색하기 위해 DFS를 실행한다. 또는 해당 던전을 방문할 것이라면 현재 피로도가 던전의 최소 피로도 이상인지 확인을 하고 DFS를 실행한다. 모든 던전을 방문 했다면 answer값..
문제 https://programmers.co.kr/learn/courses/30/lessons/42883 코딩테스트 연습 - 큰 수 만들기 programmers.co.kr 문제풀이 스택의 느낌으로 문제를 풀었다. number의 크기만큼 반복문을 돌면서, 현재 해당하는 숫자를 answer에 더하기 전에 answer의 맨 뒤에 있는 숫자보다 큰 숫자를 만나면 조건을 판단한다. 현재 해당하는 숫자를 포함한 남은 개수가 만들어야 되는 target_size보다 크다면 answer의 끝 숫자를 삭제한다. 그다음 조건에 맞지 않아 반복문이 종료됐으면 현재 숫자를 answer의 끝에 더해준다. 반복문이 종료됐을 때 만약 answer의 크기가 target_size보다 크다면 target_size의 크기가 될 때까지 a..
문제 https://programmers.co.kr/learn/courses/30/lessons/42842 코딩테스트 연습 - 카펫 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 programmers.co.kr 문제풀이 yellow의 약수를 구한다. 각각의 약수에 +2를 더하고 곱한 값이 전체 블록의 수가된다. 이 값이 brown + yellow의 값과 같아지면 된다. 가로가 세로 길이 이상이어야 하고, idx는 1부터 시작하므로 몫을 가로로 둔다. 약수를 구하면서 몫+2, 나눈 수+2의 곱이 총 격자의 수와 같으면 그게 가로, 세로의 길이다. 코드 #incl..
문제 https://programmers.co.kr/learn/courses/30/lessons/42747 코딩테스트 연습 - H-Index H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표 programmers.co.kr 문제풀이 오름차순으로 정렬을 하고 첫 번째 인덱스부터 탐색한다. 새로운 값을 발견했을 경우, 답을 구하지 못한 상태이므로 이전 값들은 무조건 현재 값보다 작다. 따라서 문제의 조건에서 나머지 논문이 h번 이하 인용되었다는 조건은 필요 없어진다. 그러면 남은 조건은 h번 이상 인용된 논문이 h개 이상인 최댓값 h를 구하는 것이..
문제 https://programmers.co.kr/learn/courses/30/lessons/76502 코딩테스트 연습 - 괄호 회전하기 programmers.co.kr 문제풀이 스택을 이용하여 풀었다. 괄호의 종류가 세 가지나 있다. s의 최대 크기가 많이 안 커 보이므로 회전 대신 s를 덧붙이고 idx만 늘리면서 회전의 역할을 한다. 문자열을 바꿀 때마다 스택을 초기화한다. 여는 괄호가 들어오면 스택에 push 한다. 닫는 괄호가 들어오면 스택이 비었는지, 안 비었는지를 확인한다. 스택이 비어있다면 짝이 맞을 수 없으므로 바로 break를 한다. 스택이 비어있지 않다면 짝이 맞는 괄호인지 판별해야 한다. ')'가 들어오면 '(', '{'가 들어오면 '}', '['가 들어오면 ']'. (아스키코드 ..