개발일지
-
문제 - 더하거나 빼거나개발일지/알고리즘 2021. 12. 27. 20:49
# 문제 Q. 음이 아닌 정수들로 이루어진 배열이 있다. 이 수를 적절히 더하거나 빼서 특정한 숫자를 만들려고 한다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들기 위해서는 다음 다섯 방법을 쓸 수 있다. -1+1+1+1+1 = 3 +1-1+1+1+1 = 3 +1+1-1+1+1 = 3 +1+1+1-1+1 = 3 +1+1+1+1-1 = 3 사용할 수 있는 숫자가 담긴 배열 numbers, 타겟 넘버 target_number이 매개변수로 주어질 때 숫자를 적절히 더하고 빼서 타겟 넘버를 만드는 방법의 수를 반환하시오. 해당 문제를 처음 밨을 때는 부호를 배치해야하고 -1 + 1 = 0 이므로 3을 만드려면 (+1, -1 ) 2개씩 짝지어 배치하면 되는 문제인 줄 알고 조합 문제로 받아드렸다. 따..
-
문제 - 배달의 민족 배달 가능 여부개발일지/알고리즘 2021. 12. 27. 20:26
# 문제 Q. 배달의 민족 서버 개발자로 입사했다. 상점에서 현재 가능한 메뉴가 ["떡볶이", "만두", "오뎅", "사이다", "콜라"] 일 때, 유저가 ["오뎅", "콜라", "만두"] 를 주문했다. 그렇다면, 현재 주문 가능한 상태인지 여부를 반환하시오. # 풀이과정 해당 문제는 주문 목록 중 주문한 요리가 있으면 되는 문제로 주문을 순회하면서 메뉴에 있는지 파악해도 되지만 시간을 단추하기 위해 정렬 하여 순회하도록 하면 조금 더 빠르게 구할 수 있다고 생각했다. shop_menus = ["만두", "떡볶이", "오뎅", "사이다", "콜라"] shop_orders = ["오뎅", "콜라", "만두", "햄버거"] def is_available_to_order(menus, orders): shop_..
-
문제 - 문자열 뒤집기개발일지/알고리즘 2021. 12. 27. 15:47
# 문제 Q. 0과 1로만 이루어진 문자열이 주어졌을 때, 이 문자를 모두 0, 혹은 모두 1로 같게 만들어야 한다. 할 수 있는 행동은 연속된 하나의 숫자를 잡고 모두 뒤집는 것 이다. 뒤집는 것은 1을 0으로, 0을 1로 바꾸는 것을 의미한다. 주어진 문자열을 모두 0 혹은 모두 1로 같게 만드는 최소 횟수를 반환하시오. # 예시 input : "0001100" 이 문자열을 모두 0 혹은 1로 만들기 위해서는 두가지 방법이 있습니다. 1. 모두 0으로 만드는 방법 1) 4번째 원소와 5번째 원소를 잡고 뒤집으면? `0000000` 이 됩니다. 문자열을 순서대로 탐색하다보면 뒤집는 시점은 바로 0에서 1로 변할 때 뒤집어야 하는 걸 감지할 수 있습니다! 2. 모두 1으로 만드는 방법 1) 1번째 원소와..
-
문제 - 소수 나열하기개발일지/알고리즘 2021. 12. 27. 15:09
#문제 정수를 입력했을 때, 그 정수 이하의 소수를 모두 반환하시오 # 예시 # 20 입력한다면 answer : [ 2, 3, 5, 7, 11, 13, 17, 19 ] # 나의 풀이과정 소수는 1, 자기자신으로만 나누어 떨어져야하기 때문에 각 숫자들이 처음 부터 자기자신까지 순서대로 반복하면서 나누어야하므로 이중 for문을 이용하였다. for문을 이용하여 목표 숫자까지 도달하며 각 숫자들은 2부터 자기자신 -1 을 순서대로 나누어서 나누어 떨어지는 것이 있다면 바로 반복문을 빠져나와 다음 숫자로 이동하도록 코드를로 구현했다. 해당 값동안 나누어 떨어지지 않았다면 소수라는 뜻으로 결과 리스트에 추가 하였음 # 전체 코드 input = 20 def find_prime_list_under_number(numb..
-
JavaScript 기본개발일지/웹프로그래밍 2021. 12. 22. 21:01
JavaScript란 우선 헷갈릴 수 있어서 미리 이야기하는데 JavaScript != Java 임을 명시하자. 이름만 비슷할 뿐 서로 전혀 다른 말이다. 우선 이 JavaScript는 html에 적용되는 언어로써 동적인 부분을 맡아 쳐리한다. 동적인 부분이란 웹프로그래밍 3대장 중 html, css은 미리 텍스트로 짜여저 있고 그저 작성한대로 보여주기만 한다. 하지만 다들 알다시피 웹사이트는 계속해서 변화를 한다. 클릭을 하고 내용을 쓰고 새로고침을 하고 홈페이지로 돌아가고 등등 사용자의 입력에 따라 계속해서 다른 화면을 보여주게 된다. 이를 구현하는 것이 바로 JavaScript (이하 JS)이다. 이전에 작성한 예시의 홈페이지를 보게되면 버튼 1 버튼 2 버튼 3 버튼 4 위에 그림과 같은데 여기서..
-
CSS 기본 내용개발일지/웹프로그래밍 2021. 12. 22. 20:39
CSS 란? Cascading Style Sheets 의 약자로 웹사이트를 꾸며줄 때 사용하는 언어이다. 지난글의 HTML은 구조를 뜻하면 CSS는 만들어진 구조를 이쁘게 다듬는 역할이라고 생각한다. CSS의 기본문법은 크게 어렵지않고 우선 html의 어떤 요소를 꾸며하는지 지정해야하기 때문에 html애서 태그를 특정하는 Class 와 id를 활용한다. 버튼 1 버튼 2 버튼 3 버튼 4 해당 html 코드에서 2번재 버튼을 꾸며 주기 위해선 2번째 을 가리켜야하는데 이때 필요한게 class 와 id 이다. Class, id 외에도 를 선택하는 를 Selector 라고 한다. 버튼 1 버튼 2 버튼 3 버튼 4 Class와 id를 설정했다면 html코드의 버튼 1 버튼 2 버튼 3 버튼 4 지금은 코드가..
-
HTML 기본 개념개발일지/웹프로그래밍 2021. 12. 22. 19:38
HTML 이란 Hyper Text Mark up Language의 약자로 웹사이트에서 구조를 맡고 있다. HTML과 더불어 CSS, javascript와 함께 웹사이트를 만들기 위한 필수 요소이다. HTML의 기본 구조는 태그로 되어있다는 점인 데 크게 태그는 를 말하며 내부에는 지정된단어들이 들어간다. 대부분의 경우는 짝을 이루어서 존재하고 2번째로 오는 곳에는 슬래시를 포함하여 작성한다. 가장 크게 부분을 나눈다면 내용 작성 태그와 태그이다. 는 html의 설정값, 인코딩 종류, 링크관리, 모양, 함수 등등 미리 설정해줘야하는 태그들 및 내용이 들어간다. 는 실제 내용물이 들어간다. 웹사이트를 보게되면 보이는 박스라던가 라벨, 이름, 문장, 단어 등등이 이에 포함된다. 기본으로 사용되는 태그들에는 구..
-
자료구조(4) - Queue개발일지/자료구조 2021. 12. 20. 20:37
Queue Queue : Stack과 비슷한 구조로 Stack과의 차이점은 아래가 뚫려있는 바구니이다. 그래서 처음 들어간 데이터가 가장 먼저 나오게 되는 First In, Fist Out 의 구조를 띈다 FIFO(First In, First Out) 문제에 강함, 빨대나 터널, 출입구와 비슷한 모양으로 지나간 갯수를 셀 때 유용 # Stack 기본 메소드 Queue 메소드 설명 return push(x) X원소 데어터 추가 None pop() 가장 처음 넣은 데이터 꺼내기 value peek() pop이 될 데이터 확인 None is_empty 남은 데이터가 있는지 확인 None 구현은 여러가지가 있지만 알고있는 방법들을 나열하자면 3가지 정도 된다. deque 라이브러리 이용 List이용 Linked..