728x90

정수로 이루어진 배열에서 가장 큰값을 구하는 최댓값 알고리즘을 구현해보세요.

배열내에서 최댓값을 어떻게 구할것인지대한 아주 간단한 문제입니다.


{4,13,150,17,-2}


구현해야할 답

현재 배열 내에서 가장 큰값은 4
현재 배열 내에서 가장 큰값은 150

 

먼저 최댓값을 구하기 전에

max와 min 함수의 값을 구하는것부터 알아보자 

 

Math.max(10,4); 둘중 무엇이 더 큰값인지 골라주는 공식이다. 

Math.min(90, 8); 더 작은값을 구해주는 문법입니다.

 

 

제일 먼저 해야할것이 배열의 선언입니다. 

int [] arr = {4,13,150,17,-2};

그리고 일단 배열내 첫번째 원소의 값이 제일 크다고 가정하고 초기화를 합니다.

int num = arr[0];
system.out.println("현재배열내 가장 큰값은:"+ num);

배열의 0번째에 속해있는 숫자는 4입니다. 

 

이제 반복문을 돌면서 비교하여 출력을 하겠습니다. 이때 비교는 2번째 부터 비교하면 되므로  int i=1로 시작하겠습니다.

for(int i =1; i<arr.length; i++;)
if (num<arr[i])
num=arr[i];

system.out.println("현재배열내 가장 큰값은:" + num);

결과값은 이렇게 나옵니다.

만약에 배열내에 작은값을 구하기 위해서는 if(num>arr[i]) 로 해주시면 배열의 가장 작은값을 구합니다.

728x90

'문제풀이 > 백준' 카테고리의 다른 글

백준 1546번 자바  (0) 2022.03.09
백준 10818 최대 최소 값 구하기  (0) 2022.01.28
백준 2884 번 자바 문제 풀이- 알람 시계  (0) 2022.01.27
SQL - 변환 함수  (0) 2021.12.28
정규 표현 식 (문제 풀이 -1  (0) 2021.12.26
728x90

오라클을 상용하다 보면 데이터 타입을 변환해야 하는 경우가 생깁니다. 이럴때 사용하는 함수가 형 변환 함수입니다. 형 변환 함수의 종류(TO_NUMBER, TO_CHAR,TO_DATE) 는 다음과 같습니다.

TO_CHAR 함수(TO_DATE(date,fmt)) 

함수는 날짜나 숫자를 문자로 변환하기 위해서 사용합니다.

날짜 형식을 지정하기 위해서FMT(FORMAT) 를 지정하며 FMT는 단일 인용부호로 둘러싸여 있어야 합니다.

어떤 타당한 날짜 형식 요소도 포함할 수 있습니다.

 

 

 
종류 설명
YY 연도 표현 2자리 4자리 사용하려면 YYYY
MM 월을 숫자로 표현
DD 날짜를 숫자로 표현
HH or HH12 or HH24 하루 중 시간 또는 시간(1-12) 또는 시간(0-23)
MI
SS
" OF THE" 인용 부호내의 스트링이 결과에 다시 나타납니다.

 

 

TO_CHAR(Number,'fmt')

TO_NUMBER  함수를 사용하여 문자 스트링을 숫자형식으로 변환합니다.

 

오직 숫자로만 이루어진 문자 스트링은 숫자 형식으로 자동 형변환 됩니다. 그러나 $ 또는, 등을 포함한 문자 스트링은 FMT를 지정해서 형 변환해야 합니다.

예를 들면 다음 구문을 싱행시 오류가 발생하빈다. 문자열'%5,500.00'은 숫자 5500으로 자동형변환 되지 않습니다.

TO_DATE 함수를 사용하여 문자 스트링을 날짜 형식으로 변환합니다.

 

728x90

'문제풀이 > 백준' 카테고리의 다른 글

백준 1546번 자바  (0) 2022.03.09
백준 10818 최대 최소 값 구하기  (0) 2022.01.28
백준 2884 번 자바 문제 풀이- 알람 시계  (0) 2022.01.27
정수 배열 최대값  (0) 2022.01.11
정규 표현 식 (문제 풀이 -1  (0) 2021.12.26
728x90

문제 풀이 조건입니다.

1. day, store, grade, detail, price를 멤벼변수로 갖는 product 클래스생성.

2. getter, setter사용

3.product를 제네릭으로 갖는 list를 생성합니다.

4.bufferedReader을 이용해서 검담.txt readline으로 읽어옵니다.

5.날짜, 지점, 등급, 상품내용, 가격을 패턴분석해서 product에 저장하고 list에 저장합니다.

6. 분석한 패턴을 xlsx형식의 엑셀파일로 뽑으면 됩니다. 

 

먼저 멤버변수를 갖는 Product 클래스 생성하기.

 

멤버변수를 private String으로 선언을 하고 생성자를 만듭니다.

그리고 getter, setter를 선언하면 1번과2번은 끝이납니다.

 

건담.txt
0.00MB

건담.텍스르 파일을 불러올 경로에 다운받아 넣어줍니다.

그리고 product를 제네릭형식으로 갖는 list를 생성합니다.

여기서 product를 제네릭형식으로 갖는 list생성이란 말은 <>에 불러올 형태의 클래스를 집어넣는거를 말하는겁니다.

 

4. 지문을 읽고 

이런식으로 불러줍니다. 항상 try-catch문을 이용해서 

파일 경로는 따로 지정해주어도 좋습니다 

예를 들면 String path = 파일경로

그리고 파일경로 적을곳에 path를 적으면 좀더 편하겠죠??

여기까지는 쉽습니다. 하지만 5번문제를 풀기까지 저같은 허접은 3일이나 걸렸답니다.......

 

이 텍스트를 날짜와 스토어 등급 디테일 그리고 가격으로 나누워서 파일을 만들어야하니 눈앞이 깜깜해지더라고요

그리고 저는 같은 클래스분에 도움을 받아 문제를 풀긴했습니다. 

제가 좀 어렵게 생각하고있었더군요. 

정규 표현식을 보시면 이해는 가실겁니다.. 근데 디테일부분에서 모든 문자들이 집합적으로 들어있다보니 문제가 생기더라고요.... 구글링해보고 하다가 찾은게 replace를 쓰면된다는 사실을 깨닫고 혼자해보았지만 잘안되네요...ㅎㅎㅎ 그래도 참 재밌습니다. 이런식으로 어려워도 뭔가를 풀어간다는 느낌이 대략 중학교 1학생때 수학을 푸는 제 자신을 보는거 같더군요 ㅎㅎ

 

정규표현식은 저런식으로 디테일 부분은 빼고 했습니다... 처음에는 디테일부분에 이것저것 넣었지만! 결국은 필요없는 부분이더라고요.

 

Pattern and matcher을 써서 해결했구요 디테일 부분은 replace를 사용해서 다 "" 을 써서 공백으로 만들어주었답니다. 

 

위에 보시면 파일 경로한곳을 저장한곳이 str입니다.

str은 replace한 그룹들을 다 저장받아서 결국 디테일부분만 빼고 공백으로받아 다 엑셀 파일로 받을수 있게 되었답니다. 

 

엑셀 만드는 법은 저도 구글링해서 카피페이스트 하고 살짝 수정한게 다입니다.

 

다들 재밌게 문제들 한번 풀어보세요... 나중에는 이런 문제들이 30분도 안걸려서 풀수있는 실력이 되었으면 좋겠습니다.

728x90

'문제풀이 > 백준' 카테고리의 다른 글

백준 1546번 자바  (0) 2022.03.09
백준 10818 최대 최소 값 구하기  (0) 2022.01.28
백준 2884 번 자바 문제 풀이- 알람 시계  (0) 2022.01.27
정수 배열 최대값  (0) 2022.01.11
SQL - 변환 함수  (0) 2021.12.28

+ Recent posts