전체 글 51

프로그래머스 문제 풀이 - 할인 행사 (해시 맵)

XYZ 마트는 일정 금액을 내면 10일간 회원 자격을 주고, 회원에게 매일 한 가지 품목을 할인.정현이는 쇼핑할 때 본인이 원하는 물건들을 정확한 수량만큼, 10일 안에 모두 할인받아 살 수 있을 때만 회원가입을 함 연속된 10일 동안, 할인하는 품목들이 want와 number 조건을 정확히 만족하는 시작 날짜가 몇 개인지 세는 문제 - 입력으로 주어지는 것들want: 정현이가 사고 싶은 상품 이름 목록 (문자열 배열)number: 각 상품별 원하는 수량 (정수 배열)discount: XYZ 마트에서 날짜순으로 할인하는 상품 배열먼저 정현이가 원하는 상품과 수량을 HashMap에 기록한다. (예: "apple" → 2)discount 배열에서 10일씩 잘라가며 해당 기간 동안의 할인 상품 빈도를 또 Ha..

프로그래머스 문제 풀이 - 완주하지 못한 선수 (해시 맵)

마라톤에 참가한 사람들과 완주한 사람들의 목록이 있음단 한 명만 완주하지 못했고, 그 이름을 찾아내는 문제포인트는 동명이인이 존재할 수 있다는 점!그래서 단순 포함 여부만 비교하면 안됨 HashMap을 이용해 이름과 등장 횟수를 기록completion 배열을 먼저 처리해 이름별 완주 횟수를 기록이후 participant를 순회하면서 해시맵에 존재하지 않거나 값이 0이면, 그사람은 완주하지 못함값을 주여가며 체크 class Solution { public String solution(String[] participant, String[] completion) { // 이름과 참가 횟수를 저장할 해시맵 생성 HashMap map = new HashMap(); // ..

프로그래머스 문제 풀이 - 기능개발(큐)

이 문제는 각 기능별로 개발 완료까지 남은 일수를 계산하고,앞 기능이 완료되지 않으면 뒤 기능도 함께 대기해야 하는 상황을 시뮬레이션하는 문제 즉, 뒤에 있는 기능이 먼저 완성돼도 앞 기능이 끝날 때까지 기다렸다가 함께 배포돼어야 함 여러 기능이 동시에 개발 중인데, 앞에 있는 기능이 완성되지 않으면 뒤에 있어도 배포가 지연되는 구조 각 기능별로 남은 작업일을 계산Queue를 사용해 순서를 유지앞 기능 보다 빠르게 끝난 기능들을 같은 날 묶어서 배포 import java.util.*;class Solution { public int[] solution(int[] progresses, int[] speeds) { Queue queue = new LinkedList(); i..

프로그래머스 문제 풀이 - 올바른 괄호(스택)

이 문제는 괄호 문자열이 올바르게 짝지어졌는지 판단하는 간단한 검증 문제 문자열 s가 "(", ")"만으로 구성되어 있을 때,괄호들이 바르게 짝지어졌는지 확인하는 문제예를 들면,"()()", "(())()" → O")()(", "(()(" → X왼쪽 괄호 '('를 만나면 열어주고,오른쪽 괄호 ')'를 만나면 닫아줍니다.닫을 괄호가 없는데 닫으려고 하면? 틀린 괄호!import java.util.ArrayDeque;public class Solution { // s = '(' 또는 ')' 로만 이루어진 문자열 public boolean solution(String s) { ArrayDeque stack = new ArrayDeque(); // 문자열을 문자 배열로 변환..

[JavaScript] 함수 Basic Example

□ 함수 생성 방법자바 스크립트 함수는 자료형 숫자, 문자열, 불리언처럼 변수어 넣어서 사용이 가능하다. 1. 익명 함수 -> 이름이 없는※ 자바스크립트 익명 함수는 함수명 대신 변수명에 함수 코드를 저장하는 구현 방식 익명 함수의 소스 코드는 변수값이므로 끝에 세미콜론 ; 을 대입 익명 함수는 호출시 변수명을 함수명처럼 사용하면됨 let = function(){}; consloe.log((sumFunc(2,3)); // 오류 let sumFunc = function(val1, val2) { let sum = val1 + val2 ; return sum; }; let result = sumFunc(2,3); // 함수 호출 console.log(result); console.log(sumFunc); //..

JavaScript 2020.09.26

[Spring] 기본개념 - 2

지난글에 이어서 스프링 두 번째 글을 쓰려고 한다. 못 보신 분들은 2020/08/29 - [Spring 기본/개념] - [Spring] 기본개념 - 1 간단요약 [Spring] 기본개념 - 1 간단요약 1. Spring Framework - 자바(JAVA) 플랫폼을 위한 오픈소스(Open Source) 경량급 애플리케이션 프레임워크(Framework) - 프레임워크는 뼈대나 근간을 이루는 코드들의 묶음 -> 개발에 필요한 구조를 이미 코드�� practicelee.tistory.com 1. Spring Framework를 구성하는 기능 요소 - Spring AOP : 업무로직과 공통로직을 분리 AOP 모듈을 통해 Aspect 지향 프로그래밍을 지원한다. AOP 모듈은 스프링 애플리케이션에서 Aspect..

[LeetCode-268] Missing Number 문제풀이 - Java 사용

Two Sum 문제풀이 - Java 사용 입력받은 값에서 누락된 숫자를 찾기 boolean type 배열을 선언후 초기값인 false for문을 이용하여 값이 들어있으면 true로 저장 다시 for문을 이용하여 false (누락된 값)을 return을 해주었다. class Solution { public int missingNumber(int[] nums) { // boolean을 배열 타입으로 선언 기본값은 false // nums[] 배열 크기 + 1 만큼 false로 저장 boolean[] present = new boolean[nums.length + 1]; // nums[] 크기 만큼 이미 저장되어 있는 boolean 타입의 false를 순서대로 비한개 뺴고 true로 바꿔줌 for(int i ..

[LeetCode-1] Two Sum 문제풀이 - Java 사용

Two Sum 문제풀이 - Java 사용 nums배열과 target을 주어지면 target에 해당하는 합한 값을 ouput하는 문제 ex) nums[2,7,11,15], target = 9 이면 nums[0]과 nums[1] 번째에있는 2 + 7로 계산 class Solution { public int[] twoSum(int[] nums, int target) { Map map = new HashMap(); try { for (int i = 0; i 7 // 2, target = 9, nums[1] = 7; -> 2, // key와 대응되는 value값을 ..

[LeetCode-171] Excel Sheet Column Number 문제풀이 - Java 사용

Excel Sheet Column Number 문제풀이 - Java 사용 Excel Sheet처럼 열 제목이 주어지면 열 번호를 반환 하는 문제 마찬가지로 저번에 풀었던 아스키코드를 이용하여 문제를 풀었다. 해당 값을 입력 받으면 문자형으로 반환하여 값을 계산하였다. 2020/09/16 - [LeetCode 알고리즘 문제풀이] - [LeetCode-242] Valid Anagram 문제풀이 - Java 사용 [LeetCode-242] Valid Anagram 문제풀이 - Java 사용 Valid Anagram 문제풀이 - Java 사용 매개변수 s와 t를 입력받으면 알파벳을 담은 변수를 생성하고 해당변수에 있는 값을 비교를하면서 값이맞으면 true를 리턴하는 방식 class Solution { publi..

[LeetCode-217] Contains Duplicate 문제풀이 - Java 사용

Contains Duplicate 문제풀이 - Java 사용 정수배열 입력 받으면 해당 배열에 중복 값이 있는지 확인 하는 문제 distinct을 확인하려면 HashSet에 저장을하여 HashSet 메소드중 contains를 이용하여 해당 값이 들어 있으면 return을 해주게 하였다. class Solution { public boolean containsDuplicate(int[] nums) { // 매개변수가 없으면 false if(nums==null || nums.length==0){ return false; } // hashset -> HashSet은 기본적으로 중복된 원소를 허용하지 않음, // 순서 대로 저장 x HashSet distinct = new HashSet(); // forEach..