본문 바로가기

싸피32

1213번 - String 문제의 저작권은 SW Expert Academy에 있습니다. (출처) 1. 문제 1-1. 문제 설명 1-2. 문제 해석 2. 코드 3. 실행시간 1. 문제 1-1. 문제 설명 1-2. 문제 해석 쉬어가는 문제인 것 같다. (휴) 처음에는 replaceAll을 이용해서 찾을 문자열을 전부 다 '@'로 바꿔버리고 contains를 이용해서 @의 개수를 세서 리턴하려고 했는데 문자열을 이리저리 자르고 붙이고 가지고 놀아보라는 문제 의도에 벗어나서 문자열을 자르는 substring만 사용했다. (사실 정규식을 잘 몰라서 실패했...) 2. 코드 public class Day3_1213_문자열 { public static void main(String[] args) throws IOException { Buffe.. 2021. 8. 3.
1210번 - Ladder1 문제의 저작권은 SW Expert Academy에 있습니다. (출처) 1. 문제 1-1. 문제 설명 1-2. 문제 해석 2. 코드 3. 실행시간 1. 문제 1-1. 문제 설명 1-2. 문제 해석 쉽게 말해 사다리 타기를 하는데 누가 당첨될지 맞춰보세요~ 하는 문제이다. 이 문제에서는 크게 두 가지 스킬 요구하고 있다. 배열을 이용해서 이동하는 것을 구현할 수 있는가? 맵을 벗어나는 상황을 잘 처리할 수 있는가? 이 두 가지를 중점으로 구현해나가면 된다. 그 외에 주의할 점은 다음과 같다. 출발지에서 위로 쭉쭉 올라가다가 왼쪽이나 오른쪽으로 갈 수 있는 칸에 도달하면 그쪽으로 이동한다라는 사실은 쉽게 생각해낼 수 있다. 문제는 옆으로 이동을 쭉쭉하다가 길이 끝나 다시 위로 올라가야 하는 때이다. 다시 위로.. 2021. 8. 3.
1220번 - Magnetic 문제의 저작권은 SW Expert Academy에 있습니다. (출처) 1. 문제 1-1. 문제 설명 1-2. 문제 해석 2. 코드 3. 실행시간 1. 문제 1-1. 문제 설명 1-2. 문제 해석 빨간색 자성체는 S극을 향해가고 파란색 자성체는 N극을 향해 갔을 때 짝을 이루게 되는 그룹의 개수를 구하는 문제이다. 처음에는 포문을 돌리면서 모든 자성체들을 한 칸씩 한 칸씩 이동시켜야 하나...? 라는 생각을 했는데 O(n³) 정도 나올 것 같아서 이건 아니다 싶었고... 어차피 자성체의 최종 위치 따위가 필요한 게 아니라 짝을 이루는 지를 판단하면 되기 때문에 세로 방향으로 쭉 읽으면서 검사하는 방법을 사용했다. flag를 이용해서 짝을 찾으면 cnt++ 하는 식으로 코드를 짜니 쉽게 문제가 풀렸다. 2... 2021. 8. 2.
1208번 - Flatten 문제의 저작권은 SW Expert Academy에 있습니다. (출처) 1. 문제 1-1. 문제 설명 1-2. 문제 해석 2. 코드 3. 실행시간 1. 문제 1-1. 문제 설명 1-2. 문제 해석 블록을 움직여서 최고점과 최저점의 차이를 최소로 줄였을 때, 그 차이를 출력하는 문제이다. 만약 블록을 움직이는 횟수에 제한이 없다면 아주 쉬운 문제가 됐을 것이다. 차이가 0 아니면 1이 나왔을 테니까. 하지만 이 문제는 이동 횟수가 정해져 있다. 문제에서 요구하는 동작은 기본적으로 다음과 같다. "가장 높은 곳에서 블록을 가져와 가장 낮은 곳으로 옮겨라" 가장 높은 곳을 찾아서 -1을 하고 가장 낮은 곳을 찾아서 +1을 하면 된다는 뜻이다. 이를 이동 횟수만큼 반복하면 된다. 처음에는 포문을 돌면서 최댓값 최.. 2021. 8. 2.
1209번 - Sum 문제의 저작권은 SW Expert Academy에 있습니다. (출처) 1. 문제 1-1. 문제 설명 1-2. 문제 해석 2. 코드 3. 실행시간 1. 문제 1-1. 문제 설명 1-2. 문제 해석 해석을 딱히 적을 게 없는 문제이다. (...) 여러 방향으로 배열 탐색을 연습시키기 위해서 낸 문제인 듯하다. 가로 방향, 세로 방향, 대각선, 역대각선 이렇게 총 4개의 포문이 필요할 것 같지만 조금 생각해보면 가로/세로 방향, 대각/역대각선 이렇게 2번의 포문으로 해결할 수 있다. 2. 코드 public class Day2_1209_Sum { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedR.. 2021. 8. 2.