분류 전체보기 108

[Java] Map의 메소드

1. put(K key, V value)키와 값을 맵에 넣어준다. 키가 존재하면 새 값으로 대체된다.LinkedList와 달리 add 가 아니라 put이라는 점에 주의한다.Map map = new HashMap();map.put("apple", 50);map.put("apple", 100);map.put("orange",20);2. get(Object key)지정된 키에 대응하는 값을 반환한다. 없으면 null 반환int price = map.get("apple"); //1003. getOrDefault(Object key, V defaultValue)지정된 키에 대응하는 값을 반환한다. 없으면 지정된 값 반환int price = map.getOrDefault("banana", 0); //04. remo..

Java 2025.01.29

[프로그래머스] 최빈값 구하기

문제 자체는 금방 풀었지만, map과 stream collector 등 다른사람의 풀이방법에도 배울 점이 많아 공유하고, 간단히 코드를 분석해보았다.1. 본인 풀이sort를 통해 최빈값을 구한다.마지막에서 두번째 값이 최빈값과 같으면 최소 2개 이상의 같은 최빈값이 존재하므로, -1리턴한다.아니라면, 최빈값이 하나이므로 최빈값과 같은 수를 만나면 바로 해당 값의 index를 반환한다.import java.util.Arrays;class Solution { public int solution(int[] array) { int answer = 0; int []count = new int[1000]; for(int i = 0; i 참고 풀이 1Map을 이용해 풀었다...

유클리드 호제법 증명 / 최대공약수 알고리즘

1. 유클리드 호제법의 정의✅ a>b인 두 양의 정수 a,b에 대하여, a=qb+r(나머지 r은 0 이상 b 미만,q는 몫)이라 하면, gcd(a,b)=gcd(b,r) (a,b의 최대공약수=b,r의 최대공약수)이다.2. 알고리즘 표현 public int GCD(int num1, int num2) { if (num1 % num2 == 0) return num2; return GCD(num2, num1 % num2); } 3. 증명a > b인 두 양의 정수 a, b가 있다. 이 둘의 최대공약수를 G라고 하자.a = AG, b = BG 여기서 A와 B는 서로소이다. G가 두 수의 최대공약수이기 때문이다.( 최대공약수는 모든 공통 약수를 가져가야 하기 때문..

CS/알고리즘 2025.01.29

한화시스템 beyond sw 부트캠프 1주차 회고록

1. 부트캠프 들어가면서 다짐한 점아빠가 이런 말을 해주신 적이 있다. 내가 되고 싶은 모습을 매일 100번씩 노트에 적으면 어느순간 진짜로 그 모습대로 되어있다고. 솔직히 안믿었다. 너무 터무니없고 어떻게 100번이나 쓰지 싶었다.근데, 진짜 그 말이 어느정도는 맞는 것 같다는 것을 느꼈다.성공 경험 : 컴퓨터공학과에서 높은 성적은 받은 경험처음에 컴퓨터공학과 복수전공을 시작하면서 '나 무조건 학과 수석 한다. 모든 과목에서 1등을 차지하겠어.' 라는 다짐을 한 적 있다.그리고 강한 확신 속에 그를 위한 노력을 자연스럽게 했고, 1등까진 아니었지만 학점 4점대 이상을 내내 유지하고 졸업했다.실패 경험 : SSAFY, 우아한테크코스 불합격한 경험될거라는 확신이 없었다. 난 반드시 되겠다!! 라는 의지도 ..

회고/Weekly 2025.01.27

[프로그래머스] PCCE 기출문제 10번 / 데이터 분석

소요 시간 : 40분배운 점sorted에 커스텀 comparator 적용하는 법음수면 a가 앞에, 양수면 b가 앞에 오는 방식이다. 그래서 오른쪽에 식을 작성할 때 어떤걸 앞에 두고싶은지 생각해서 음수로 나오게할지, 양수로 나오게 할지 결정하면 된다.오름차순`(a, b) -> a - b`a - b가 음수일 때는 a가 작을 때이다. a가 작을 때 a가 앞에 있으니 오름차순이다.내림차순`(a, b) -> b - a`b - a가 음수일 때는 a가 클 떄이다. a가 클 때 a가 앞에 있으니 내림차순이다.toArray에 원하는 형태로 바꾸는 법toArray(원하는데이터형::new)본인 코드import java.util.stream.*;import java.util.Arrays;class Solution { ..

[프로그래머스] PCCE 기출문제 10번 / 공원

소요시간 : 1시간 - 2시간해당 문제에서 배운 점String 문법 equals()String str1 = "a", str2 = "b"; str1.equals(str2);정렬 방법import java.util.Arrays;int[] arr; Arrays.sort(arr);프로그래머스에서 디버깅 방법함수의 리턴형을 내가 찍고싶은 변수의 데이터형으로 변환하고, 해당 변수를 리턴하기내 코드사용된 알고리즘은 DP이다.import java.util.*;class Solution { public int solution(int[] mats, String[][] park) { int answer = -1, availableSeatSize = 1; int [][]visited = new..

[DB] MaridDB 문법 - 간략하게

1. selectSELECT menu_name FROM tbl_menu;-- '*' : 모든 컬럼을 보고싶을 때 사용, 그러나 현업에서는 모호한 *보다는 확실하게 모든 컬럼을 명시해서 사용한다고 한다.SELECT * FROM tbl_menu; -- 단독으로 select문 사용SELECT 7 + 3;-- 내장함수 확인SELECT NOW() AS 현재시간;2. order by: 오름차순 정렬이 기본이다.2-1. 기본 사용 형태ORDER BY '컬럼명' [ASC/DESC]SELECT menu_code , menu_name , menu_price FROM tbl_menu-- ORDER BY menu_price ASC; --asc는 오름차순 (default)..

Database 2025.01.24

[DB] mariaDB 계정 생성

처음 DB를 설치하면 기본적으로 root 계정이 생성됩니다. 이 계정은 모든 권한을 가진 관리자 계정입니다. 그래서 저희는 보통 따로 계정을 파서 DB를 계정에 할당한 후 사용합니다. 그 방법은 다음과 같습니다.계정 이름, 비밀번호, DB이름 자리에 본인이 넣고싶은 내용을 넣으시면 됩니다.-- 새로운 계정 생성CREATE USER '계정이름'@'%' IDENTIFIED BY '비밀번호';-- 기본적으로 존재하는 데이터베이스를 사용USE mysql;-- 계정 정보 확인SELECT * FROM USER;-- 데이터베이스 생성CREATE DATABASE 데베이름;-- 데이터베이스 목록 조회SHOW DATABASES;-- swcamp의 권한 확인SHOW GRANTS FOR '계정이름'@'%';-- swcamp가..

Database 2025.01.24

소프트웨어 개발 프로세스

1. 소프트웨어 개발 프로세스의 정의 및 중요성1-1. 소프트웨어 개발 프로세스의 정의1-1-1. 기본 용어 정의(컴퓨터) 프로그램 : 컴퓨터 명령어가 나열된 코드소프트웨어 : 컴퓨터에서 실행되는 모든 종류의 프로그램시스템 소프트웨어 : 하드웨어와 애플리케이션 소프트웨어 간의 중개역할( OS가 해당)응용 소프트웨어(특히 웹 브라우저) : 특정 사용자 작업을 수행하기 위한 소프트웨어를 뜻한다.프로세스 : 과제를 해결하기 위한 절차1-1-2. 소프트웨어 개발 프로세스소프트웨어 개발 프로세스란?요구사항 수집, 설계, 구현, 테스트, 배포, 유지보수좁은 의미로 : 사용자의 요구사항을 SW 시스템으로 구현하기 위한 일련의 활동넓은 의미로 : SW 개발 목적을 이루는 데 필요한 모든 수단(+방법, 도구, 참여자)1..

SW공학 2025.01.23

[프로그래머스] 등차수열의 합

본인 풀이pcce 대비중인데, 실전을 대비해 검색하지 않고 풀었다. for문 사용하지 않고 풀어도 됐을 건데 머리쓰기 귀찮았다,,,ㅎstream으로 풀었다.import java.util.stream.*;class Solution { public int solution(int a, int d, boolean[] included) { int answer = 0; int []arr = new int[included.length]; arr[0] = a; for(int i = 1; i included[i]) .map(i -> arr[i]) .sum(); return answer; }}다른 분 풀이정석 ..