목록알고리즘/SWEA (6)
꾸물꾸물 졔의 개발공부
SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 알고리즘 매매가가 가장 높을 때 팔아야 큰 이익을 얻을 수 있다. 주어진 물건들을 구매하다가 매매가가 최고가일 때 팔면서, 해당 과정을 주어진 물건만큼 반복한다. ex ) 예제에 1 1 3 1 2 를 보면 , 1. max = 3 이기 때문에, [1 ,1] 구매 후 [3] 일 때 팔면 2 + 2 = 4 의 이익을 볼 수 있다. 2. 남은 물건 들 중 max =2 이기 때문에 , [1] 구매 후 [2] 일 때 팔면 1 의 이익을 볼 수 있다. 3. 총, 4+1 = 5 의 이익을 얻을 수 있다. 예제에 10 7 6 을 보면 , 1. max = 10 이고 가장 첫날의 물..
SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com [ 문제, 출처 - SW Expert Academy ] + 고려해야 할 부분 ( 부분오답이 생겼을 경우, ) 1. 플레이어가 '놓을 돌' 과 '놓여진 돌' 사이에 빈공간이 있으면 안된다. ex) '검' 흰 흰 검 '검'을 놓을 수 없다. 2. 플레이어가 '놓을 돌'을 기준으로 처음 '놓여진 돌' 까지만 바뀐다. ex) '검' 흰 검 흰 검 일 경우, '검' 검 검 흰 검 이 된다. 3. 플레이어가 '놓을 돌' 과 '놓여진 돌' 사이에 하나 이상의 돌이 있을 수 있다. ex) '검' 흰 흰 흰 검 일 경우, '검' 검 검 검 검 모두 바뀐다. [ 알고리즘 ] ( 구..
문제 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com [ 알고리즘 ] : 세포의 생명주기 생명력의 시간동안 비활성 상태 유지 생명력 이후 활성상태로 변화, 같은 생명력의 수치 활성상태의 첫 1시간동안, 사방으로 같은 생명력의 세포 번식, 단, 이미 세포가 번식했던 곳이면 X 생명력 이후 죽음 . 단, 자리는 그대로 유지 ++ 여기서, 3번 과정에서 번식이후에 남은 생명력의 시간이 있다면 , 죽이면 안된다 !!! 나는 번식하는 것만 처리해주고, 남은 생명력의 시간동안 활성화 상태인것을 무시해버렸다. ex ) 생명력이 4인 세포가 있다면, 번식 이후 생명력이 3 남게된다.. 죽이면 안되 ... 이부분을 생각하지 못..
[ 알고리즘 ] - Stack -> 닫힌 괄호가 나왔을 때, 가장 최근의 괄호와 짝이 맞다면 괄호 생성 가능 열린 괄호 '( [ { : stack 의 가장 위에 있는 ( 가장 최근 ) 괄호와 비교하여, 열린 괄호-닫힌괄호 짝이 생긴다면 pop : 가장 위에 있는 괄호와 비교했을 때 짝이 맞지 않는다면, 이미 유효하지 않은 테스트 케이스 -> 일단 push 해둠 ( == > 결론적으로는, 스택이 비지 않고 쌓이기만 할 것이기 때문에 유효하지 않다고 판명 ) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 import java.io.*; import java.util.*; public cla..
알고리즘] - LinkedList 자료구조 LinkedList 로 간단히 구현가능한 문제 . add 함수를 활용하여서 , 주어진 위치에 값을 add 하면 된다 ,( 9List 인터페이스에서 기존 값들은 알아서 뒤로 보냄 ) add( 인덱스, 넣을 값 ) 을 적절히 사용하면 되는데, 인덱스를 주의하자 !! ex) I 1 3 123 456 789 이면, 리스트의 인덱스는 0부터 시작이므로, 인덱스 1에 넣으면 된다. 즉, 입력받은 x 값을 그대로 인덱스로 가져가면 됨 !! 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 import java.io.*; impo..
[ 알고리즘 ] 초기상태가 모두 0인 상태이기 때문에, 00000.... 일 것이다. 그것을 고려하여, 현재 값을 0부터 시작하여서 메모리를 앞에서 부터 스캔하고, 현재값과 상반되는 값이 나오면 0 -> 1 / 1->0 으로 바꾸어 주면서 count 를 올려주었다. 즉, 단순 for 문 문제로 해결가능한 문제이다. ( 하지만, 초기값이 000... 이 아니고, 가변적인 메모리 값을 가지게 되면, 이방법은 통하지 않겠지 ㅎ.. ) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 import java.io.*; public class Solution { public static void main(String[] args) throws Numbe..