본문 바로가기

알고리즘28

[Java] 조합 조합 : 서로다른 N개의 원소에서 R개를 중복없이 순서에 상관없게 선택하는 것 ([1,2] 와 [2,1]은 같다) [입력] 4 2 1 2 3 4 [출력] [1, 2] [1, 3] [1, 4] [2, 3] [2, 4] [3, 4] [변수] - N, R : 존재하는 원소의 수, 뽑을 원소의 갯수 - input : 존재하는 원소들을 담고있는 배열 - numbers : 뽑은 원소들을 담고있는 배열 - cnt : 뽑은갯수를 파악하기 위한 인자값 - start : 현재 뽑은수의 다음 수 부터 뽑기 위해 전달하는 인자값 조합은 순열과 달리 순서에 상관이 없으므로, 다음 수는 현재 뽑은값의 다음 수로 제한하면 중복을 방지할 수 있다. import java.util.Arrays; import java.util.Scann.. 2022. 3. 14.
[Java] 순열 순열 : 서로다른 N개의 원소에서 R개를 중복없이 순서에 상관있게 선택하는 것 [입력] : 4개 원소(1,2,3,4)중에서 2개뽑기 4 2 1 2 3 4 [출력] [1, 2] [1, 3] [1, 4] [2, 1] [2, 3] [2, 4] [3, 1] [3, 2] [3, 4] [4, 1] [4, 2] [4, 3] [변수] - N, R : 존재하는 원소의 수, 뽑을 원소의 갯수 - input : 존재하는 원소들을 담고있는 배열 - numbers : 뽑은 원소들을 담고있는 배열 - isSeletcted : 중복을 방지하기 위해 선택된 수의 정보를 표시하는 배열 - cnt : 뽑은갯수를 파악하기 위한 인자값 [풀이] 재귀를 이용해서 순열을 구현한다. 첫번째 원소부터 마지막원소까지 접근할 수 있어야 하므로, 반복.. 2022. 3. 14.
[Java] SWEA1289_원재의메모리복구하기 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV19AcoKI9sCFAZN SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 원재가 컴퓨터를 만지다가 실수를 저지르고 말았다. 메모리가 초기화된 것이다. 다행히 원래 메모리가 무슨 값이었는지 알고 있었던 원재는 바로 원래 값으로 되돌리려고 했으나 메모리 값을 바꿀 때 또 문제가 생겼다. 메모리 bit중 하나를 골라 0인지 1인지 결정하면 해당 값이 메모리의 끝까지 덮어씌우는 것이다. 예를 들어 지금 메모리 값이 0100이고, 3번째 bit를 골라 1로 설정하면 0111.. 2022. 3. 12.
[Java] SWEA1954_달팽이숫자 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PobmqAPoDFAUq SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 달팽이는 1부터 N*N까지의 숫자가 시계방향으로 이루어져 있다. 다음과 같이 정수 N을 입력 받아 N크기의 달팽이를 출력하시오. 풀이 달팽이의 순서는 우->하->좌->상 으로 정해져 있으므로, dx와 dy의 값을 순서에 맞게 정의한다. 이때 숫자는 총 N*N까지 출력되기 때문에 N*N번만큼 반복문을 돌리고, 배열의 범위를 벗어나거나 갈 자리에 이미 숫자가 있다면, 방향을 바꿔준다. 이때 dx,.. 2022. 3. 12.