튜플 - 프로그래머스 (Java, level 2)
처음 풀이 "{{1,2,3},{2,1},{1,2,4,3},{2}}" 에서 각 { } 묶음을 요소로 하는 String[]을 split(regex) 사용해서 만든다. (첫번째 요소 : "1,2,3" 두번째 요소 : "2,1" 세번째 요소 : "1,2,4,3") split()에 파라미터로 들어갈 정규 표현식은 "{{" "},{" "}}" 을 포함하면 된다. 이를 일반화하면, 1. { or } 둘 중에 하나 2. , 가 들어가거나 안들어가거나 3. { or } 둘 중에 하나 이 1, 2, 3이 하나의 그룹이면 된다. "( [ { } ] , ? [ { } ] )" 이를 정규표현식으로 나타내면 다음으로 나타낼 수 있다. (문자 사이사이 띄어쓰기는 무시) 주어진 문자열을 보면 항상 시작이 {{ 이므로 split()으..
2022. 3. 16.
단체 사진찍기 - 프로그래머스 (Java, Level 2)
전체적인 흐름 프렌즈들이 설 수 있는 전체 경우의 수는 8!이다. 이 모든 경우에 대해서 모든 조건이 맞는지 각각 따져본다. 즉, DFS로 프렌즈를 쭉 배치한 뒤, 8명이 다 섰을 때 해당 배치가 조건과 맞는지 체크한다. 프렌즈를 모든 경우의 수로 배치하는 메소드 (arrange()) 배치를 파라미터로 받고, 해당 배치가 조건들과 맞는지 확인하는 메소드 (check()) final char[] FRIENDS = {'A', 'C', 'F', 'J', 'M', 'N', 'R', 'T'}; boolean[] isUsed = new boolean[FRIENDS.length]; int answer = 0; //매번 data를 파라미터로 넘기지 말고 전역변수로 String[] conditions; public in..
2022. 3. 14.