삼성 [백준] 톱니바퀴 JAVA 총 8개의 톱니를 가지고 있는 톱니바퀴 4개가 아래 그림과 같이 일렬로 놓여져 있다. 회전은 시계 방향과 반시계 방향이 있고, 아래 그림과 같이 회전한다. 톱니바퀴가 회전할 때, 서로 맞닿은 극에 따라서 옆에 있는 톱니바퀴를 회전시킬 수도 있고, 회전시키지 않을 수도 있다. 톱니바퀴 A를 회전할 때, 그 옆에 있는 톱니바퀴 B와 서로 맞닿은 톱니의 극이 다르다면, B는 A가 회전한 방향과 반... 백준Java톱니바퀴삼성Java [백준 17780 새로운 게임] A. 접근법 문제풀이 시간 : 약 1시간 40분 소요...(실수만 아니면 1시간 20분쯤 풀었을텐데 ㅜㅜ) 구현과 시뮬레이션 카테고리로 문제 지문에 충실하게 소스코드를 작성하면 정답이 된다. B. 구현 nxtcan(int x, int y) (x, y)에 있는 칸이 어떤 칸인지 판별하는 함수. mov(int x, int y) (x, y)에 있는 말들을 옮기는 함수이다. 옮기는 도중 겹치는 말이... 삼성백준백준 [C++] 3190 : 뱀 해냈다 평생의 숙원!! (x, y)는 우리가 수학적으로 생각하는 좌표와는 반대다. 열이 x, 행이 y이다. 앞으로 변수를 y, x 바꾸어 선언하여 혼동을 줄이는 것이 좋겠다. 뱀의 위치를 따로 저장하는 배열을 만들기보다는 다른 정수로 표시하여 한 번에 처리하였다. 뱀의 마지막 위치를 구하기 위하여 덱을 사용하였다. 모든 뱀의 좌표를 덱에 넣고 push와 pop을 하면서 뱀의 크기를 늘리고 줄... 2022.03알고리즘덱삼성cpp백준시뮬레이션2022.03 [C++] 14503 : 로봇 청소기 시뮬레이션 연습용 문제. 대략 4시간 쯤 걸렸다. 아직 익숙치 못한 슬픈 나... 인터넷도 많이 찾아보고 이런 문제를 접했을 때 어떤식으로의 접근법이 효율적인지를 공부하는 중이다. 방향은 함수를 통해서 구해도 되지만 나머지를 이용해 구하는 것이 훨씬 숫자를 이용하기 편하며 코드가 짧아 진다. ex) d = (d+3) % 4 굳이 check 배열을 만들지 않아도 된다. map에 2를 할당하는 ... 2022.03알고리즘삼성cpp백준시뮬레이션2022.03 [C++] 백준 14502 : 연구소 메모리 제한 또는 시간 제한이 걸릴까봐 걱정되었는데 512MB, 2초정도면 모든 임시값을 copy해도 괜찮을 정도라는 것을 알게 되었다. 벽 3개 세우기는 백트래킹(DFS)를 이용한다. 순열을 구하는 것과 같다. 모든 경우의 수에서 3개씩 뽑아 줄세우면 된다. STL 라이브러리의 algorithm을 사용하면 copy를 한 줄에 끝낼 수 있다. copy(copy할 것의 첫 주소, copy할 것... 백트래킹2022.03BFS알고리즘DFS삼성cpp백준2022.03 [C++] 백준 14888 : 연산자 끼워넣기 드디어 인터넷을 전혀 참고하지 않고 삼성 기출 문제를 풀 수 있었다! 물론 백트래킹으로 풀어야한다는 것은 너무 명백했고, 공부한 것을 바탕으로 응용해서 문제를 푼 것이긴 하지만 말이다. if와 else if 주의하기, if문 만족하면 else if문은 돌아가지 않는다. 첫 수는 A[0]부터 시작한다. 따라서 나머지 연산자는 cal[1]을 사용하고 A[1]과 계산한다. index를 맞추어서 계... 백트래킹2022.03알고리즘삼성cpp백준2022.03 [C++] 백준 14889 : 스타트와 링크 팀을 짜기 위해서는 팀에 속할 2/N명의 사람을 고르면 된다. 따라서 순열과 같다. 1~N까지의 수 중에서 2/N개를 구하는 것과 같다. 순열을 구할때는 백트래킹을 이용해서 구한다. 팀의 순서는 중요하지 않으므로 1번은 이미 팀에 속해있다고 보고 다음 값부터 구해주었다. 골라진 순열의 값은 visited에 true로 체크되어 있는 것이 골라진 수이다. 따라서 반복문을 돌면서 각각의 팀을 저장... 브루트포스 알고리즘백트래킹2022.03알고리즘삼성cpp백준2022.03 [C++] 백준 20055 : 컨베이어 벨트 위의 로봇 쉬웠던 시뮬레이션 문제. 그런데 은근 한 조건을 빼먹어서 꽤 애를 먹었다ㅜㅜ 꼼꼼히 문제를 보기, 로봇을 올리는 것도 내구도가 단다. 배열과 덱을 처음에는 혼용해서 사용하였는데 매우 비효율적이다. 배열로 컨베이너 벨트를, 덱을 로봇의 위치를 사용했는데 그냥 이런 컨베이터 벨트 문제는 다 덱을 사용하는게 덜 헷갈리고 편한 것 같다. 너무 많은 자료구조를 한 문제에 쓰지 말자. 덱도 배열처럼 i... 2022.04알고리즘덱삼성cpp백준시뮬레이션2022.04 [BOJ] 13460 동시에 만나는 것을 처리하지 못했다 visited는 고려하지 않았다 dfs를 생각했던 것 같다. 죄다 도는.. 입력을 받으면서 red,blue를 처리해줬더니 위치를 못찾았다. 입력 처리 후에 다시 red,blue를 탐색하니 제대로 위치를 찾았다. move와 dfs 처리는 잘했지만 bfs..였다는 점 조건 분석을 잘해야겠다.... 다시DPT알고리즘삼성DPT (삼성) - 뱀(3190) 삼성 역량테스트 - 구현 • ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ> x(+) y(+) 참고)... 백준삼성백준 (삼성) - 테트로미노(14500) 삼성 역량테스트 - 구현, 브루트포스 try, except를 알고리즘 때 사용을 잘 안했지만 이 문제에 대단히 유용. 참고)... 백준삼성백준 (삼성) - 드래곤 커브(15685) 삼성 역량테스트 - 구현 참고)... 백준삼성백준 (삼성) - 톱니바퀴(14891) rotate 메서드 활용 참고) 큐 없이 회전 직접 구현 : 큐 자체에 있는 회전 활용 :... 백준삼성백준 [삼성] 게리멘더링2 환경 n*n 크기의 땅이 있습니다. 선거구를 나누는 방법 중에서, 인구가 가장 많은 선거구와 가장 적은 선거구의 인구 차이의 최솟값을 구해보자. 지역구를 나누는 규칙 선거구를 나누는 방법은 다음과 같다. 기준점 (x, y)와 경계의 길이 d1, d2를 정한다. (d1, d2 ≥ 1, 1 ≤ x < x+d1+d2 ≤ N, 1 ≤ y-d1 < y < y+d2 ≤ N) 다음 칸은 경계선이다. (x... 백준골드4삼성골드4 [삼성] 컨베이어벨트 위의 로봇 로봇을 옮길 컨베이어 벨트의 길이 n(컨베이어 벨트이므로 2n길이의 벨트가 돌아감)과 2n길이의 벨트에 대한 내구도가 주어집니다. 로봇은 컨베이어벨트의 앞에서 올라타고 끝에서 내릴 수 있습니다. 내구도는 로봇이 올라타거나 옮겨갔을 때 1씩 떨어집니다. 내구도가 0인 칸에는 올라타거나 옮겨갈 수 없습니다. 벨트가 한 칸 회전한다. 가장 먼저 벨트에 올라간 로봇부터, 벨트가 회전하는 방향으로 한... 백준실버1시뮬레이션삼성삽질백준
[백준] 톱니바퀴 JAVA 총 8개의 톱니를 가지고 있는 톱니바퀴 4개가 아래 그림과 같이 일렬로 놓여져 있다. 회전은 시계 방향과 반시계 방향이 있고, 아래 그림과 같이 회전한다. 톱니바퀴가 회전할 때, 서로 맞닿은 극에 따라서 옆에 있는 톱니바퀴를 회전시킬 수도 있고, 회전시키지 않을 수도 있다. 톱니바퀴 A를 회전할 때, 그 옆에 있는 톱니바퀴 B와 서로 맞닿은 톱니의 극이 다르다면, B는 A가 회전한 방향과 반... 백준Java톱니바퀴삼성Java [백준 17780 새로운 게임] A. 접근법 문제풀이 시간 : 약 1시간 40분 소요...(실수만 아니면 1시간 20분쯤 풀었을텐데 ㅜㅜ) 구현과 시뮬레이션 카테고리로 문제 지문에 충실하게 소스코드를 작성하면 정답이 된다. B. 구현 nxtcan(int x, int y) (x, y)에 있는 칸이 어떤 칸인지 판별하는 함수. mov(int x, int y) (x, y)에 있는 말들을 옮기는 함수이다. 옮기는 도중 겹치는 말이... 삼성백준백준 [C++] 3190 : 뱀 해냈다 평생의 숙원!! (x, y)는 우리가 수학적으로 생각하는 좌표와는 반대다. 열이 x, 행이 y이다. 앞으로 변수를 y, x 바꾸어 선언하여 혼동을 줄이는 것이 좋겠다. 뱀의 위치를 따로 저장하는 배열을 만들기보다는 다른 정수로 표시하여 한 번에 처리하였다. 뱀의 마지막 위치를 구하기 위하여 덱을 사용하였다. 모든 뱀의 좌표를 덱에 넣고 push와 pop을 하면서 뱀의 크기를 늘리고 줄... 2022.03알고리즘덱삼성cpp백준시뮬레이션2022.03 [C++] 14503 : 로봇 청소기 시뮬레이션 연습용 문제. 대략 4시간 쯤 걸렸다. 아직 익숙치 못한 슬픈 나... 인터넷도 많이 찾아보고 이런 문제를 접했을 때 어떤식으로의 접근법이 효율적인지를 공부하는 중이다. 방향은 함수를 통해서 구해도 되지만 나머지를 이용해 구하는 것이 훨씬 숫자를 이용하기 편하며 코드가 짧아 진다. ex) d = (d+3) % 4 굳이 check 배열을 만들지 않아도 된다. map에 2를 할당하는 ... 2022.03알고리즘삼성cpp백준시뮬레이션2022.03 [C++] 백준 14502 : 연구소 메모리 제한 또는 시간 제한이 걸릴까봐 걱정되었는데 512MB, 2초정도면 모든 임시값을 copy해도 괜찮을 정도라는 것을 알게 되었다. 벽 3개 세우기는 백트래킹(DFS)를 이용한다. 순열을 구하는 것과 같다. 모든 경우의 수에서 3개씩 뽑아 줄세우면 된다. STL 라이브러리의 algorithm을 사용하면 copy를 한 줄에 끝낼 수 있다. copy(copy할 것의 첫 주소, copy할 것... 백트래킹2022.03BFS알고리즘DFS삼성cpp백준2022.03 [C++] 백준 14888 : 연산자 끼워넣기 드디어 인터넷을 전혀 참고하지 않고 삼성 기출 문제를 풀 수 있었다! 물론 백트래킹으로 풀어야한다는 것은 너무 명백했고, 공부한 것을 바탕으로 응용해서 문제를 푼 것이긴 하지만 말이다. if와 else if 주의하기, if문 만족하면 else if문은 돌아가지 않는다. 첫 수는 A[0]부터 시작한다. 따라서 나머지 연산자는 cal[1]을 사용하고 A[1]과 계산한다. index를 맞추어서 계... 백트래킹2022.03알고리즘삼성cpp백준2022.03 [C++] 백준 14889 : 스타트와 링크 팀을 짜기 위해서는 팀에 속할 2/N명의 사람을 고르면 된다. 따라서 순열과 같다. 1~N까지의 수 중에서 2/N개를 구하는 것과 같다. 순열을 구할때는 백트래킹을 이용해서 구한다. 팀의 순서는 중요하지 않으므로 1번은 이미 팀에 속해있다고 보고 다음 값부터 구해주었다. 골라진 순열의 값은 visited에 true로 체크되어 있는 것이 골라진 수이다. 따라서 반복문을 돌면서 각각의 팀을 저장... 브루트포스 알고리즘백트래킹2022.03알고리즘삼성cpp백준2022.03 [C++] 백준 20055 : 컨베이어 벨트 위의 로봇 쉬웠던 시뮬레이션 문제. 그런데 은근 한 조건을 빼먹어서 꽤 애를 먹었다ㅜㅜ 꼼꼼히 문제를 보기, 로봇을 올리는 것도 내구도가 단다. 배열과 덱을 처음에는 혼용해서 사용하였는데 매우 비효율적이다. 배열로 컨베이너 벨트를, 덱을 로봇의 위치를 사용했는데 그냥 이런 컨베이터 벨트 문제는 다 덱을 사용하는게 덜 헷갈리고 편한 것 같다. 너무 많은 자료구조를 한 문제에 쓰지 말자. 덱도 배열처럼 i... 2022.04알고리즘덱삼성cpp백준시뮬레이션2022.04 [BOJ] 13460 동시에 만나는 것을 처리하지 못했다 visited는 고려하지 않았다 dfs를 생각했던 것 같다. 죄다 도는.. 입력을 받으면서 red,blue를 처리해줬더니 위치를 못찾았다. 입력 처리 후에 다시 red,blue를 탐색하니 제대로 위치를 찾았다. move와 dfs 처리는 잘했지만 bfs..였다는 점 조건 분석을 잘해야겠다.... 다시DPT알고리즘삼성DPT (삼성) - 뱀(3190) 삼성 역량테스트 - 구현 • ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ> x(+) y(+) 참고)... 백준삼성백준 (삼성) - 테트로미노(14500) 삼성 역량테스트 - 구현, 브루트포스 try, except를 알고리즘 때 사용을 잘 안했지만 이 문제에 대단히 유용. 참고)... 백준삼성백준 (삼성) - 드래곤 커브(15685) 삼성 역량테스트 - 구현 참고)... 백준삼성백준 (삼성) - 톱니바퀴(14891) rotate 메서드 활용 참고) 큐 없이 회전 직접 구현 : 큐 자체에 있는 회전 활용 :... 백준삼성백준 [삼성] 게리멘더링2 환경 n*n 크기의 땅이 있습니다. 선거구를 나누는 방법 중에서, 인구가 가장 많은 선거구와 가장 적은 선거구의 인구 차이의 최솟값을 구해보자. 지역구를 나누는 규칙 선거구를 나누는 방법은 다음과 같다. 기준점 (x, y)와 경계의 길이 d1, d2를 정한다. (d1, d2 ≥ 1, 1 ≤ x < x+d1+d2 ≤ N, 1 ≤ y-d1 < y < y+d2 ≤ N) 다음 칸은 경계선이다. (x... 백준골드4삼성골드4 [삼성] 컨베이어벨트 위의 로봇 로봇을 옮길 컨베이어 벨트의 길이 n(컨베이어 벨트이므로 2n길이의 벨트가 돌아감)과 2n길이의 벨트에 대한 내구도가 주어집니다. 로봇은 컨베이어벨트의 앞에서 올라타고 끝에서 내릴 수 있습니다. 내구도는 로봇이 올라타거나 옮겨갔을 때 1씩 떨어집니다. 내구도가 0인 칸에는 올라타거나 옮겨갈 수 없습니다. 벨트가 한 칸 회전한다. 가장 먼저 벨트에 올라간 로봇부터, 벨트가 회전하는 방향으로 한... 백준실버1시뮬레이션삼성삽질백준