BOJ

코딩테스트/백준

[백준] 1244 스위치 켜고 끄기 (java)

1244번: 스위치 켜고 끄기 첫째 줄에는 스위치 개수가 주어진다. 스위치 개수는 100 이하인 양의 정수이다. 둘째 줄에는 각 스위치의 상태가 주어진다. 켜져 있으면 1, 꺼져있으면 0이라고 표시하고 사이에 빈칸이 하나씩 www.acmicpc.net 해설 평이한 수준의 시뮬레이션, 구현 문제였다. 남자랑 여자로 스위치 변경 타입을 나눠주고 각 메소드를 분리해서 만들어줬다. 이번에는 메소드를 분리해서 만들었지만 나머지 연산을 사용한다면 굳이 change 메소드까지 만들 필요는 없었다고 생각한다. 구현 문제이니만큼 직관적인 편이었지만 추후 더욱 어려운 구현(시뮬레이션) 문제를 풀기에 앞서서 풀어보기에는 괜찮은 문제라는 생각이 들었다. 메소드를 분리해서 만들면 코드가 길어질 경우에 중복되는 코드를 줄이기 쉽..

코딩테스트/백준

[백준] 12891 DNA 비밀번호 (java)

12891번: DNA 비밀번호 평소에 문자열을 가지고 노는 것을 좋아하는 민호는 DNA 문자열을 알게 되었다. DNA 문자열은 모든 문자열에 등장하는 문자가 {‘A’, ‘C’, ‘G’, ‘T’} 인 문자열을 말한다. 예를 들어 “ACKA” www.acmicpc.net 해설 처음에는 나이브하게 모든 부분문자열로 잘라서 풀이해보려고 했지만 그렇게 하니까 시간초과가 났다. 그래서 생각해본 방식으로는 각 ACTG를 0, 1, 2, 3의 인덱스값을 표현하는 int값으로 바꿔준 다음에 그 int값을 arr 배열에 넣었다. 그리고 cur 배열에서 앞쪽 유전자(알파벳)에 해당하는 인덱스값을 낮춰주고, 뒤쪽 유전자(알파벳)에 해당하는 인덱스값을 높여주면서 한 계단씩 올라가면서 비교를 진행해서 통과하게 되었다. 예를 들어..

코딩테스트/백준

[백준] 15649 N과 M(1) (java)

15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 해설 간단하게 순열을 구현해보는 문제였다. 기본 배열인 arr에 1~N을 넣어준 다음에 순열을 통해 순서가 있게 선택을 하고 N만큼의 선택을 진행했다면, 해당 순열을 static StringBuilder sb에 넣어줌으로써 저장한 다음에 마지막에 한꺼번에 출력해줌으로써 출력시간을 최소화할 수 있도록 만들었다. 기본 순열을 구현하는 좋은 문제이므로 자주 들여다보면서 순열을 구현하는 감을 익히면 좋을 것 같다. 풀이 import java.io.BufferedRead..

넉우리
'BOJ' 태그의 글 목록