전체 글 402

[정보처리기사] 소프트웨어 생명 주기(Software Lift Cycle)

소프트웨어 생명 주기(Software Lift Cycle)소프트웨어 개발 방법론의 바탕이 되며 운용, 유지보수 등의 과정을 각 단계별로 나눈것을 의미하며 일반적으로 사용되는 모형에는 폭포수 모형, 프로토 타입 모형, 나선형 모형, 애자일 모형 등이 있습니다. A. 폭포수 모형(Warterfall Model)폭포수와 같이 한번 떨어지면 거슬러 올라갈 수 없듯이 이전 단계로 돌아갈 수 없다는 전제하에 각 단계를 확실히하여 결과를 철저하게 검토 및 승인 과정을 거친 후 다음 단계로 나아가는 개발 방법론전통적인 소프트 웨어 생명 주기 모형 (고전적 생명 주기 모형)선형 순차적 모형다음 단계를 수행하기 위한 결과물을 명확하게 산출되며 두개 이상의 과정이 병행하여 수행될 수 없음  B. 프로토 타입 모형(Proto..

[Spring] STS3에서 MVC Project를 찾을 수 없음(STS MVC Project invalid thread access, org.springframework.samples.mvc failed)

STS3에서 MVC Project를 찾을 수 없음(STS MVC Project invalid thread access, org.springframework.samples.mvc failed)2024년 2월 이후 STS3 버전을 다운로드 받고 워크스페이스를 변경하면 Spring MVC Project를 찾을 수 없는 현상이 발생했습니다.일부 블로그에서는 워크스페이스\.metadata\.plugins\org.springsource.ide.eclipse.commons.content.core에 https-content.xml을 작성하면 MVC Project를 생성할 수 있다는 글을 확인하여 xml 파일을 넣었지만, 프로젝트 생성 시 보이기만 하고 만들수는 없는 현상이 발생 했습니다.※ https-context.x..

Programming/Spring 2024.03.25

[백준] 1764번: 듣보잡 (실버4, 자료 구조, 문자열, 정렬해시를 사용한 집합과 맵, JAVA)

문제 링크 : https://www.acmicpc.net/problem/1764 [백준] 1764번: 듣보잡 (실버4, 자료 구조, 문자열, 정렬해시를 사용한 집합과 맵, JAVA) 해당 문제는 N과 M의 중복 개수와 이름을 출력하는 문제입니다. (중복 개수 출력을 못봐서 두 개의 케이스로 풀었습니다..) 1. getOrDefault를 사용한 풀이 getOrDefault는 지정된 값을 찾아서 없다면 기본값을, 있다면 값에 1을 더하여 사용했습니다. map.put(name, map.getOrDefault(name,0) + 1); 으로 사용을 했는데 name값이 있다면 value를 1 증가 시키고 없다면 기본값(0)을 반환시키도록 하는 함수입니다. 보도 못한(M) 사람을 입력받고 해당하는 키가 있다면 값을 ..

[백준] 1526번: 가장 큰 금민수 (브론즈1, 수학, 구현, 브루트포스 알고리즘, JAVA)

문제 링크 : https://www.acmicpc.net/problem/1526 1526번: 가장 큰 금민수 (브론즈1, 수학, 구현, 브루트포스 알고리즘, JAVA) 수를 하나 입력받고, 4와 7로만 이루어진 숫자의 최댓값을 구하는 문제입니다. 전체 코드는 아래와 같은데, 값을 입력받은 후 해당 숫자를 char 배열로 변환합니다. 이후 각각의 char 배열에 7또는 4가 있는지 확인하고 count를 증가시키게 되는데, count가 char 배열의 길이와 같을 경우 모든 값이 4또는 7로 이루어진 문자이기 때문에 출력 후 종료합니다. 만약, 같지 않다면 입력받은 값(N)에서 1씩 감소시키며 원하는 값을 찾을때까지 반복합니다. import java.io.BufferedReader; import java.i..

[백준] 1417번: 국회의원 선거 (실버5, 구현자료, 구조그리디, 알고리즘시뮬레이션, 우선순위 큐, JAVA)

문제 링크 : https://www.acmicpc.net/problem/1417 1417번: 국회의원 선거 (실버5, 구현자료, 구조그리디, 알고리즘시뮬레이션, 우선순위 큐, JAVA) 매수해야하는 사람의 수를 구하는 문제인데, 예제의 경우 다솜(5)이가 2번과 3번의 사람을 한명씩 매수하게 되면 득표 수가 7,6,6이 되므로 두명을 매수해야하기 때문에 출력값은 2가 나와야 합니다. 아래의 코드에서 각각의 값을 입력받고, 한명의 후보밖에 없을 경우(입력되는 값이 1일 때) 0을 출력합니다. public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(ne..

[백준] 1302번: 베스트셀러 (실버4, 자료구조, 문자열, 정렬, 해시를사용한 집합과 맵 JAVA)

문제 링크 : https://www.acmicpc.net/problem/1302 1302번: 베스트셀러 (실버4, 자료구조, 문자열, 정렬, 해시를사용한 집합과 맵 JAVA) 해당 문제는 가장 많이 판매된 책을 출력하는 문제입니다. 우선 사용자로부터 입력을 받고 HashMap에 담습니다. key는 책 이름, value는 판매된 횟수로 사용할 예정입니다. maxValue와 maxKey는 마지막 로직에서 가장 많이 판매된 책을 구하기 위한 변수입니다. public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(Syst..

[백준] 1100번: 하얀 칸 (브론즈2, JAVA)

문제 링크 : https://www.acmicpc.net/problem/1100 [백준] 1100번: 하얀 칸 (브론즈2, JAVA) 하얀 칸 위에 말(F)이 있는 칸이 몇개인지 찾는 문제인데, 예제 출력을 보면 아래와 같습니다. 해당 문제에서 첫번째(왼쪽 맨 위 / 0,0)는 하얀 칸으로 시작하고 그 다음부터 검은 칸이 한번씩 반복되는데, 해당 칸을 기준으로 옆 칸과 아래칸은 검은 칸이 됩니다. 화살표로 표시하게 되면 아래 처럼 되는데, 파란색이 하얀 칸이나 빨간 색이 검은 칸입니다. 아래 코드로 시작하여 체스판을 입력받고, for문을 통해 로직을 작성합니다. for문의 tempChar는 하얀칸 위에 있는 말을 확인하기 위해 입력받은 체스판을 char 배열로 만들어 줍니다. public class Ma..

[프로그래머스 Lv1] 신규 아이디 추천 (2021 KAKAO BLIND RECRUITMENT)

문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/72410 [프로그래머스 Lv1] 신규 아이디 추천 아래와 같은 단계들의 유효성 검사를 통과하며 문자열을 다루는 문제입니다. 1단계 new_id의 모든 대문자를 대응되는 소문자로 치환합니다. 2단계 new_id에서 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.)를 제외한 모든 문자를 제거합니다. 3단계 new_id에서 마침표(.)가 2번 이상 연속된 부분을 하나의 마침표(.)로 치환합니다. 4단계 new_id에서 마침표(.)가 처음이나 끝에 위치한다면 제거합니다. 5단계 new_id가 빈 문자열이라면, new_id에 "a"를 대입합니다. 6단계 new_id의 길이가 16자 이..

[백준] 14916번: 거스름돈 (실버5, 그리디 알고리즘, JAVA)

문제 링크 : https://www.acmicpc.net/problem/14916 [백준] 14916번: 거스름돈 (실버5, 그리디 알고리즘, JAVA) count 변수를 선언하여 최종적으로 출력한 동전의 최소 개수를 구합니다. while true를 사용하여 무한루프를 실행시키고, 각각의 조건식은 다음과 같습니다. N%5 == 0 && N != 0 5로 나누어 떨어지고, N이 0이 아닐 경우에는 count를 증가시키고 N에서 5를 감소시킵니다. N/2 >= 1 N의 값에서 2를 나눳을 때 최소 1번 이상 나누어질 경우 count를 증가시키고 N에서 2를 감소시킵니다. N != 0 N의 값이 0이 아닐 경우 -1를 출력하고 반복문을 종료합니다. 그 외의 경우에는 N에 대한 모든 계산이 끝나고 나누어 떨어지..