구름톤챌린지
-
[구름톤 챌린지] GameJam - python구름톤챌린지 2023. 8. 29. 23:09
폭탄 구현하기 (2)와 비슷하게 "시뮬레이션" "행렬" 개념이 사용된다. 더보기 문제 풀이 command는 방향이동, count는 이동횟수이다. 1. 보드 정보를 기록할 행렬 필요함, count, 방향을 기록할 행렬 필요함 2. 이동 명령에 따른 방향 관리 3. 보드 범위 밖으로 나갔을때 , 좌표를 반대쪽 첫칸으로 이동 4. 방문한 칸을 다시 지나면 게임이 종료된다. 입력받기, 데이터 가공 #첫째줄 입력 : N *N 배열을 만들기 위한 N N = int(input()) #둘째줄 입력 : 구름의 시작 위치 Rg, Cg = map(int, input().split()) #셋째줄 입력 : 플레이어의 시작 위치 Rp, Cp = map(int, input().split()) #인덱스는 0부터 시작하기때문에, 1 ..
-
[구름톤 챌린지] 폭탄 구현하기(2) -python구름톤챌린지 2023. 8. 29. 01:22
시뮬레이션, 리스트 개념이 필요한 문제입니다. 더보기 문제 분석 1. 폭탄이 떨어지면 , 떨어진 위치를 기준으로 상하좌우 조건에 따라 증가 # : 증가 x 0 : 값 1 증가 @ : 값 2 증가 2. 모든 폭탄이 떨어진 이후에, 폭탄값이 가장 높은 값을 출력 입력받기 리스트 컴프리헨션 사용 [표현식 for 항목 in 반복가능 객체 if 조건문] 배열? : 리스트 내부 리스트 가 있는 형태 # N,K 값 공백두고 받아서 int형으로 변환 N, K = map(int,input().split()) # NxN 배열을 만든다 -> 리스트 내부에 리스트 가 배열이다. arr = [list(input().split()) for _ in range(N)] #출력 for row in arr: print(row) 입력 4..
-
[구름톤 챌린지] 구름 찾기 깃발 -python구름톤챌린지 2023. 8. 27. 17:09
2차원 배열 (행렬, 매트릭스) 에서 완전탐색 문제 지뢰찾기 처럼, 2차원 배열 내에서 어떤 칸의 값이 0이면,인접한 8칸에 1(폭탄)이 몇개인지 확인하는 문제이다. 1. 모든 0인칸에 대해서 주위에 1이 몇개인지 찾아야 하기 때문에 완전탐색을 해야한다. 2. 그리고 주위에 깃발의 개수가 K개인 칸의 개수를 센다. 주변에 1이 몇개인지 확인하는 기법으로 DY/DX 기법을 활용한다. 행렬을 선언. 행렬 -> 2차원 배열 -> 배열 안에 또 다른 배열을 넣는것이다. 기본적으로 리스트를 선언하고, 그내부에 리스트를 또 넣는 방식으로 구현된다. # 3x3 행렬 만들기 matrix = [] # i : 행 (가로) , j : 열(세로) for i in range(3): matrix.append([]) # 1. 빈 ..
-
[구름톤 챌린지] 문자열 나누기 -java구름톤챌린지 2023. 8. 23. 17:00
1. 문자열 S를 겹쳐지 않는 3개의 부분 문자열로 나누어야한다. (이때 부분문자열을 길이가 1이상이어야 한다.) 2. 3개의 부분 문자열을 중복을 제거하고 사전순으로 정렬한 결과 P를 얻는다. 3. P 요소에 각각 점수를 매치시킨다. 점수는 사전순이고 가장 처음 요소 값이 1로 시작한다. 4. 모든 경우의 수 문자열 집합들 중에서 최대 점수를 얻을 수 있는 문자열 집합을 찾는다. 1. 문자열 S를 겹쳐지 않는 3개의 부분 문자열로 나누어야한다. (이때 부분문자열을 길이가 1이상이어야 한다.) 예를 들어서 이해해보자. abcd라는 문자열이 있을때 우리는 {"a" "b" "cd"} ,{"a","bc","d"} , {"ab","c","d"} 와 같이 원소를 나누어야 하는데, 이는 조합의 개념으로 이해하면 쉽..
-
[구름톤 챌린지] 이진수 정렬 -java구름톤챌린지 2023. 8. 20. 20:45
비교할 대상이 하나 (2진수 변환 후 1의 갯수) 였다면 쉽게 풀렸을 문제이지만, 해당 문제는 1의 개수가 같다면 원래 10진수를 기준으로 내림차순을 정렬해야한다. 즉 변수 하나로 해결될 문제가아니라, 변수 두개를 짝으로 저장하는 1. 딕셔너리와 같은 자료형이 필요하고 2. 비교하는 클래스가 있어야한다. 이 문제를 풀때 핵심은 아래 2가지를 알고 있느냐 였다. 1. 딕셔너리 in java -> Pair 클래스 2. 비교 클래스 - > Comparable bitCount() 2진수로 변환 후 1의 갯수를 카운팅하는 메소드이다. Integer.bitCount(num) 과 같이 변환해 카운팅한 값을 int형으로 저장한다. Pair 클래스 Pair 클래스는 두 개의 값을 짝 형태로 저장할 때 쓰이는 클래스이다...
-
[구름톤 챌린지] 프로젝트 매니징 -java구름톤챌린지 2023. 8. 16. 15:52
내가 푼 방식 main메소드 다음 공백 문자 전까지 읽어들이는 sc.nextInt()를 사용해서, 변수 3개 받아왔다. N개의 정수 값들은 ArrayList 자료형으로 저장했다. add()메소드 사용해서 리스트 내부 값들 하나씩 저장했다. print메소드 자바는 또 모듈화가 중요하니까,,, 그래서 출력하는 메소드 따로 구현했음 처음 문제풀면서 시간이랑 분을 도대체 어떻게?? 계산하냐?? 몰랐기때문에 그냥 무식하게 풀었음 24시면 0시로 바꾸고,, 반복문 돌려서 60분 넘으면 60빼고,, ㅋㅋㅋㅋㅋ 풀면서 잘못되었음을 인지하긴 했지만 굉장히 논리적이었고 역시나 통과 하긴 하더라구요? import java.util.ArrayList; import java.util.Scanner; public class ST..