전체 글
[백준 1405] 미친 로봇
https://www.acmicpc.net/problem/1405 1405번: 미친 로봇 첫째 줄에 N, 동쪽으로 이동할 확률, 서쪽으로 이동할 확률, 남쪽으로 이동할 확률, 북쪽으로 이동할 확률이 주어진다. N은 14보다 작거나 같은 자연수이고, 모든 확률은 100보다 작거나 같은 자�� www.acmicpc.net 유형 dfs 로직 dfs를 돌린다 -> 재방문 하는 곳은 리턴 -> dfs를 돌리면서 방향에 맞는 확률도 같이 계산해서 파라미터로 넘겨준다 -> 주어진 N 만큼 깊이로 탐색을 했을 시 확률을 더해준다 코드 package 백준; import java.util.Scanner; public class 미친로봇1405 { static int dr[]= {0,0,1,-1}; static int dc..
프로그래머스 level2 - 소수 찾기
https://programmers.co.kr/learn/courses/30/lessons/42839?language=cpp 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이방법 sort로 최대값 구하기 최대값까지 소수 찾기 찾은 소수를 string으로 바꿔 numbers에 포함되면 answer증가 #include #include #include #include using namespace std; int answer =0; int numSize = 0; bool cmp(char a, char b) { return a > b; } void isCheck..
프로그래머스 level2 - 프린터
https://programmers.co.kr/learn/courses/30/lessons/42587 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 필요개념 덱에 대한 개념 for(auto) 를 이용하여 덱 탐색 pair 사용 법 flag를 다뤄서 맞는 조건에 찾기 /* --스택을 탐색 방법? -- */ #include #include #include using namespace std; int solution(vector priorities, int location) { int answer = 0; deque q;//인덱스, 우선순위 vector res..
SWEA level3 - 부분 수열의 합
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV7IzvG6EksDFAXB&categoryId=AV7IzvG6EksDFAXB&categoryType=CODE SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 재귀함수를 잘 나타내는 문제 처음 재귀호출은 arrIdx부분 arr을 선택하겠다는 뜻 두번째는 선택 안 하겠다는 뜻 solution(arrIdx + 1, sum + arr[arrIdx]); solution(arrIdx + 1, sum); /* -- 재귀사용 */ #include using namespace std; i..
2017 카카오코드 본선 - 단체사진 찍기
https://programmers.co.kr/learn/courses/30/lessons/1835 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 중요개념 next_permutaion(배열의 시작주소, 끝 주소) : 순열을 구해준다, algorithm 헤더 #include #include #include #include using namespace std; bool pos_check(vector s, vector data) { for (int i = 0; i < data.size(); i++) { int first; int second; int num =..
2019카카오 인턴쉽 - 불량 사용자
https://programmers.co.kr/learn/courses/30/lessons/64064# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 금지된 아이디가될 가능성이 있는 user_id를 찾아서 vector를 만든다 만들어 놓은 vector를 재귀함수와 비트마스크를 이용하여 중복되지 않게 만든다 중요 개념 1001 | 0110 -> 1111 1001 & 0110 -> 0000 1>3 -> 1 1을 오른쪽으로 3만큼 이동 bool visited[1 배열크기가 2^8이다. 왜? 1을 8만큼 이동하고 10진법으로 바꿨기 때문. 비트마스크 관련 링크 ..
2020 카카오 기출 괄호 변환
https://programmers.co.kr/learn/courses/30/lessons/60058 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 유형: 문자열 변환 is_check()에서 stack을 활용하여 "올바른"인지 "균형잡힌" 인지 구분한다 is_check()에서 "올바른"과 "균형잡힌"의 경계선을 구한다. substr을 활용하여 u,v로 나눈다 /* main 입력 ans+=solution 출력 solutioin w if 빈 문자 리턴 flag = is_check w pos를 구했으니 u,v 알 수 있음 if 균형이면 tmp = ( + sol..
백준 16234 인구 이동
https://www.acmicpc.net/problem/16234 16234번: 인구 이동 N×N크기의 땅이 있고, 땅은 1×1개의 칸으로 나누어져 있다. 각각의 땅에는 나라가 하나씩 존재하며, r행 c열에 있는 나라에는 A[r][c]명이 살고 있다. 인접한 나라 사이에는 국경선이 존재한다. 모든 나라는 1×1 크기이기 때문에, 모든 국경선은 정사각형 형태이다. 오늘부터 인구 이동이 시작되는 날이다. 인구 이동은 다음과 같이 진행되고, 더 이상 아래 방법에 의해 인구 이동이 없을 때까지 지속된다. 국경선을 공유하는 두 나라의 인구 차이가 L명 www.acmicpc.net 유형: bfs, 시뮬레이션 나라별로 구분 map을 구분 짓는다. bfs로 알 수 있음 bfs가 끝 났을 때 avg함수를 사용하여 ma..
백준 15686 치킨 배달
https://www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸, 왼쪽에서부터 c번째 칸을 의미한다. r과 c는 1부터 시작한다. 이 도시에 사는 사람들은 치킨을 매우 좋아한다. 따라서, 사람들은 "치킨 거리"라는 말을 주로 사용한다. 치킨 거리는 집과 가장 가까운 치킨집 사이의 거리이다. 즉, 치킨 거리는 www.acmicpc.net 치킨집을 선택, 재귀를 사용 집에서 선택한 치킨집 중에서 거리가 최소인 것을 선택 위 에서 구한 거리를 모두 더한다 /* 치킨집을 m..
백준 15685 드래곤 커브
https://www.acmicpc.net/problem/15685 15685번: 드래곤 커브 첫째 줄에 드래곤 커브의 개수 N(1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 드래곤 커브의 정보가 주어진다. 드래곤 커브의 정보는 네 정수 x, y, d, g로 이루어져 있다. x와 y는 드래곤 커브의 시작 점, d는 시작 방향, g는 세대이다. (0 ≤ x, y ≤ 100, 0 ≤ d ≤ 3, 0 ≤ g ≤ 10) 입력으로 주어지는 드래곤 커브는 격자 밖으로 벗어나지 않는다. 드래곤 커브는 서로 겹칠 수 있다. 방향은 0, 1, 2, www.acmicpc.net 유형: 시뮬레이션 방향의 규칙성을 먼저 찾는다. 시작점에서 벡터의 정보대로 드레곤 커브를 완성한다 map에 1로 업데이트 한다 주어..