문제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) { ..
코딩테스트
문제https://www.acmicpc.net/problem/14712소요 시간 : 1시간난이도 : 골드 5접근 방법백트래킹을 이용하여 모든 경우의 수를 찾는다.1. 가로로 넴모를 한개씩 놓는다. 가로로 맵의 끝까지 도달했으면 다음 행으로 넘어가서 반복한다. 2. 넴모를 놓을 때 좌상, 상, 좌측에 넴모가 있는지 체크한다.- 넴모가 모두 있다면 넴모가 만들어지므로 현재 위치에 넴모를 놓지 않고 넘어간다. - 넴모가 모두 있지 않다면 넴모가 만들어지지 않으므로 현재 위치에 넴모를 놓았을 때, 놓지 않았을 때 모두 탐색한다. 나의 풀이#include using namespace std;int N, M; // 0 = N || nx = M) continue; if (map[ny]..
문제https://www.acmicpc.net/problem/20154난이도 : 브론즈 1소요 시간 : 26분 접근 방법1. 맵을 사용하여 각 문자별 획수를 저장한다.2. 주어진 문자열의 획수들을 벡터에 저장한다. 3. 벡터를 2칸씩 돌면서 획수들을 더하고 10으로 나눈 숫자를 새로운 벡터에 넣는다.4. 길이가 홀수이면 마지막 남은 획수를 새로운 벡터에 넣는다. 5. 새로운 벡터의 사이즈가 1이 될때까지 3~4를 반복한다. 나의 풀이#include #include #include #include using namespace std;vector calculate(vector v) { vector temp; for(int i=0; i> S; // solve unordered_map s..
문제https://school.programmers.co.kr/learn/courses/30/lessons/12916난이도 : LV 1소요 시간 : 5분접근 방법완전 탐색으로 문자열을 돌면서p나 P와 같으면 p_cnt의 개수를 더하고y나 Y와 같으면 y_cnt의 개수를 더해서 p_cnt와 y_cnt의 개수가 같은지 여부를 반환하였다. - 참고 : https://codechacha.com/ko/java-get-char-in-string/ Java - 문자열에서 Index로 문자 가져오기charAt()는 문자열에서 인자로 전달된 Index의 문자 1개를 리턴합니다. char 자료형으로 리턴되며, char를 String으로 변경하려면 String.valueOf()을 사용하여 변경하면 됩니다. charAt()를..
문제https://school.programmers.co.kr/learn/courses/30/lessons/42576난이도 : LV 1소요 시간 : 5분접근 방법선수 이름 - 완주 여부를 map으로 저장한 후참여하였다면 +1을 완주하였다면 -1을 해주었다.bool로 했었다가 동명이인이 있어 int로 다루었다.나의 풀이#include #include #include #include using namespace std;string solution(vector participant, vector completion) { string answer = ""; unordered_map m; for(string name : participant) { m[name] += 1; } ..
문제https://school.programmers.co.kr/learn/courses/30/lessons/42862난이도 : LV 1소요 시간 : 15분접근 방법학생의 체육복 개수 저장할 배열을 만들어서 1로 초기화한다.여분의 개수를 가진 학생은 배열 값을 2 로 만들어준다.도난 당한 학생은 체육복 개수를 -1로 해준다.전체 배열을 돌면서, 체육복 개수가 0이라면먼저 앞 요소가 2 이면 2-1 / 0+1 로 빌려줌 처리를 해준다.앞 요소가 2가 아니고 뒤 요소가 2 라면 마찬가지로 빌려줌 처리를 해준다.나의 풀이#include #include #include using namespace std;int solution(int n, vector lost, vector reserve) { int ans..
문제https://school.programmers.co.kr/learn/courses/30/lessons/86051?language=cpp난이도 : LV 1소요 시간 : 5분접근 방법0~9까지 있는지 배열에 체크 후, 없다면 더해준다.나의 풀이#include #include using namespace std;bool arr[10];int solution(vector numbers) { int answer = 0; for(int i : numbers) { arr[i] = true; } for(int i=0; i다른 풀이배열 사용 X : 0~9까지 더한 후 numbers를 돌면서 있으면 빼준다.정렬 이용 등등정리자바로도 풀어보려 하다가 List 등 자료구조에 익숙하지 않..