https://www.acmicpc.net/problem/14939 14939번: 불 끄기 전구 100개가 10×10 정사각형 모양으로 늘어서 있다. 전구에 달린 스위치를 누르면 그 전구와 위, 아래, 왼쪽, 오른쪽에 있는 전구의 상태도 바뀐다. 전구 100개의 상태가 주어지면 모든 전구를 끄 www.acmicpc.net 브루트포스로 풀 수 있는 문제이다. 플레 난이도답게 아이디어를 생각하기 어려운 문제였다. 핵심 스위치를 할 때마다 주변과 현재 위치의 상태가 변하게 된다. 즉 컨트롤하기 어렵다는 문제가 있다. 이를 생각해 보면 위쪽의 경우 아래에서 스위치를 하면 컨트롤할 수 있게 된다 -> 맨 아래는 컨트롤불가 따라서 맨 첫 줄의 모든 경우의 수를 생각하고, 마지막 줄 이전까지의 행을 원하는 대로 바꾼..
https://www.acmicpc.net/problem/13460 13460번: 구슬 탈출 2 첫 번째 줄에는 보드의 세로, 가로 크기를 의미하는 두 정수 N, M (3 ≤ N, M ≤ 10)이 주어진다. 다음 N개의 줄에 보드의 모양을 나타내는 길이 M의 문자열이 주어진다. 이 문자열은 '.', '#', 'O', 'R', 'B' www.acmicpc.net 조금 난도가 있는 bfs 문제이다. 핵심 중요하다고 생각하는 부분은 빨간 구슬과 파란 구슬이 움직일 때 둘의 위치에 따라 먼저 움직이는 순서가 달라져야 한다는 것이다. 만약.. RB가 있을 때 왼쪽으로 움직인다면 R -> B순으로 움직여야 한다. 정답 코드 import java.util.LinkedList; import java.util.Queue..
https://school.programmers.co.kr/learn/courses/30/lessons/17683 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 옛날에 풀려다가 문제를 이해를 못 해서 넘겼었던 문제이다. 오랜만에 다시 천천히 읽어보니 단순 구현문제였다. 핵심 요즘 문제를 풀 때 주석을 달고 분석을 시작하고 한다. 일단 내가 적은 주석이다. // 우선 문자를 구분해줘야함 C, C# 등등 -> 중요포인트라고 생각되는건 // C, C#, D, D#, E, F, F#, G, G#, A, A#, B 12개가 있음 #은 다른 문자로 대체하느게 좋아보..
https://leetcode.com/problems/knight-probability-in-chessboard/ Knight Probability in Chessboard - LeetCode Can you solve this real interview question? Knight Probability in Chessboard - On an n x n chessboard, a knight starts at the cell (row, column) and attempts to make exactly k moves. The rows and columns are 0-indexed, so the top-left cell is (0, 0), and t leetcode.com 오늘 문제는 dp를 이용한 문제이다...
https://leetcode.com/problems/maximize-the-confusion-of-an-exam/ Maximize the Confusion of an Exam - LeetCode Can you solve this real interview question? Maximize the Confusion of an Exam - A teacher is writing a test with n true/false questions, with 'T' denoting true and 'F' denoting false. He wants to confuse the students by maximizing the number of consecutive leetcode.com 오늘도 어제와 같은 윈도우 슬라이..
https://leetcode.com/problems/maximum-number-of-achievable-transfer-requests/ Maximum Number of Achievable Transfer Requests - LeetCode Can you solve this real interview question? Maximum Number of Achievable Transfer Requests - We have n buildings numbered from 0 to n - 1. Each building has a number of employees. It's transfer season, and some employees want to change the building they re leetc..
https://leetcode.com/problems/shortest-path-to-get-all-keys/ Shortest Path to Get All Keys - LeetCode Can you solve this real interview question? Shortest Path to Get All Keys - You are given an m x n grid grid where: * '.' is an empty cell. * '#' is a wall. * '@' is the starting point. * Lowercase letters represent keys. * Uppercase letters represent lock leetcode.com 친구의 추천으로 리트코드 문제를 처음 풀어보았다..
https://www.acmicpc.net/problem/11286 11286번: 절댓값 힙 첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 0이 아니라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net 이 문제는 이름에서도 알 수 있듯이 힙 문제이다. 문제자체는 매우 단순하다. 핵심 문제를 그대로 해석하면 0이면 절댓값이 작은 수를 반환하고, 0이 아닌 수이면 큐에 넣는 것이다. 우선큐의 Comparator를 재정의하면 쉽게 풀 수 있다. 정답 코드 import java.util.PriorityQueue; import java.util.Scanner; public class..
https://www.acmicpc.net/problem/2138 2138번: 전구와 스위치 N개의 스위치와 N개의 전구가 있다. 각각의 전구는 켜져 있는 상태와 꺼져 있는 상태 중 하나의 상태를 가진다. i(1 < i < N)번 스위치를 누르면 i-1, i, i+1의 세 개의 전구의 상태가 바뀐다. 즉, 꺼져 www.acmicpc.net 핵심 완전탐색을 하면 시간초과가 뜨게 된다. 따라서 다른 방법을 사용해야 한다. 그리디를 사용해서 풀면 쉽게 풀린다. 자기 자신의 스위치를 누르면 양옆과 본인의 스위치가 변한다. 0~n까지 이동할 때, i-1을 바꿀 수 있는 전구는 i 뿐이다. 즉 첫 번째 전구가 꺼진 경우와 켜진 경우 2가지를 나누어서 풀 수 있다. 정답 코드 import java.util.Scann..
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AX8BB5d6T7gDFARO&categoryId=AX8BB5d6T7gDFARO&categoryType=CODE&problemTitle=%EC%82%AC%ED%83%95&orderBy=FIRST_REG_DATETIME&selectCodeLang=ALL&select-1=&pageSize=10&pageIndex=1 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 나연이는 A개의 사탕을, 다현이는 B개의 사탕을 갖고 있다. 두 사람은 아래와 같은 작업을 정확히 K번 반복하려고 한다..