728x90
반응형

전체 글 161

[JAVA / 자바] 백준 1157번 - 단어 공부

문제 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. 입력 첫째 줄에 알파벳 대소문자로 이루어진 단어가 주어진다. 주어지는 단어의 길이는 1,000,000을 넘지 않는다. 출력 첫째 줄에 이 단어에서 가장 많이 사용된 알파벳을 대문자로 출력한다. 단, 가장 많이 사용된 알파벳이 여러 개 존재하는 경우에는 "?"를 출력한다. 문제 접근 방법 한 단어가 입력될 때 대소문자가 섞여있다. 이를 if조건문으로 일일이 구분해서 계산해줘도 좋지만 편의를 위해 나는 모두 대문자로 전환하여 빈도수를 측정해줬다. 이때, 알파벳의 빈도수를 체크할 때는 알파벳이 총 26자이므로 26개만큼의 int형 배열을 선언해주..

[JAVA / 자바] Scanner와 BufferedReader / System.out.print와 BufferWriter의 차이

여러분들은 Scanner함수와 System.out.print함수를 아마도 즐겨 쓰고 있을 것입니다. 왜냐면 입출력 시에 이 두 함수가 사용하기도 편리하고 쉽기 때문이죠, 하지만 나중에 시간 초과에 걸릴 위험이 큰 함수들이 바로 Scanner와 System.out.print함수입니다. 그렇다면 시간 초과에 걸리지 않을 방법은 무엇일까요? 바로, BufferReader함수와 BufferWriter함수가 해법이 될 수 있습니다. 왜 그럴까요? Scanner 1. 입력을 받으면 이것이 어떠한 형의 단어인지 구분하여 분석을 한다.(int, String 등,,,) 2. 입력값의 경계로 공백, 엔터 모두 인식이 가능하다. 3. 사용하는 버퍼의 사이즈는 1024 chars이다. 4. 문자열 파싱이 가능하다. 5. IO..

백준 잔디심기(1일 1문제) 2주차 회고록 _ 12/11, 2021 (SAT)

서론 앞전에 내가 코딩 블로그를 시작하면서 내가 목표로 했던 것 중 하나가 "Github 1일 1 커밋 운동을 해보고 싶다"였다. 그러나 아직 사지방에서 Github 올릴 내용을 찾기도 힘들고 어떻게 처음 시작해야 할지 몰라서 아직 다른 분들의 1일 1 커밋 내용들을 보면서 무슨 주제로, 어떤 내용을, 어떤 공부를 할지 고민 중이라 아직 그것은 시작하지 못했고 그 대신에 당장 바로 시작할 수 있는 것을 찾아보니 백준 알고리즘 사이트에서도 잔디를 심을 수 있길래 1일 1문제로 잔디를 심어보기로 결심했다. (잔디심기 기능이 원래 있었는지 이번에 생겼는지 아무튼 최근에 처음 봄,,) 현재 잔디심기 2주 차에 지금 어떤 마음가짐으로 하고 있는지 기록으로 남기고자 이번 회고록을 작성하게 되었다. 본론 결과부터 말..

Diary 2021.12.11

[JAVA / 자바] System.out.printf()로 포맷 출력

java에서 출력하는 대표적인 함수는 System.out.print()를 들 수 있습니다. 그러나, 출력 서식을 지정하고 싶을 때는 System.out.printf()를 사용합니다. System.out.printf("출력 서식", 출력할 내용); 위와 같이 System.out.printf() 함수를 사용하게 되는데 이때 출력할 내용은 출력 서식 안에 있는 지시자의 위치로 들어가게 됩니다. 이때, 지시자는 출력할 내용의 형에 따라 다르게 되는데 그 내용은 다음과 같습니다. 지시자 출력 %n ( = \n) 줄바꿈 %d Integer 형식 %f Float 형식 %c ( = %C) char 형식 %s OR %S String 형식(소문자, 대문자) %b OR %B boolean 형식(소문자, 대문자) %x OR ..

[JAVA / 자바] 백준 4673번 - 셀프 넘버

문제 셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자릿수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때, 이 수를 시작해서 n, d(n), d(d(n)), d(d(d(n))),... 과 같은 무한수열을 만들 수 있다. 예를 들어, 33으로 시작한다면 다음 수는 33 + 3 + 3 = 39이고, 그다음 수는 39 + 3 + 9 = 51, 다음 수는 51 + 5 + 1 = 57이다. 이런 식으로 다음과 같은 수열을 만들 수 있다. (33, 39, 51, 57, 69, 84, 96, 111, 114, 120, 123, 129, 141,...) n을 d(n)의 생성자라..

[JAVA / 자바] 백준 4344번 - 평균은 넘겠지

문제 대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다. 입력 첫째 줄에는 테스트 케이스의 개수 C가 주어진다. 둘째 줄부터 각 테스트 케이스마다 학생의 수 N(1 ≤ N ≤ 1000, N은 정수)이 첫 수로 주어지고, 이어서 N명의 점수가 주어진다. 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다. 출력 각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다. 문제 접근 방법 그 반의 평균을 구한 후에 다시 그 반 학생들의 점수와 비교해서 평균 이상 인 학생의 수를 구해야 하므로 리스트에 학생들의 점수를 저장해놓아야 한다. 이때, 테스트 케이스가 1개가 아니라 여러 개이므로 매 케이스마다 리스..

[JAVA / 자바] 백준 1546번 - 평균

문제 세준이는 기말고사를 망쳤다. 세준이는 점수를 조작해서 집에 가져가기로 했다. 일단 세준이는 자기 점수 중에 최댓값을 골랐다. 이 값을 M이라고 한다. 그러고 나서 모든 점수를 점수/M*100으로 고쳤다. 예를 들어, 세준이의 최고점이 70이고, 수학점수가 50이었으면 수학 점수는 50/70*100이 되어 71.43점이 된다. 세준이의 성적을 위의 방법대로 새로 계산했을 때, 새로운 평균을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보다 크다. 출력 첫째 줄에 새로운 평균을 출력한다. 실제 정답과 출력값의 절..

[JAVA / 자바] 백준 2562번 - 최댓값

문제 9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오. 예를 들어, 서로 다른 9개의 자연수 3, 29, 38, 12, 57, 74, 40, 85, 61 이 주어지면, 이들 중 최댓값은 85이고, 이 값은 8번째 수이다. 입력 첫째 줄부터 아홉 번째 줄까지 한 줄에 하나의 자연수가 주어진다. 주어지는 자연수는 100 보다 작다. 출력 첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 몇 번째 수인지를 출력한다. 문제 접근 방법 첫 번째 숫자를 최댓값이라 가정하고 이후 입력될 8개의 서로 다른 수를 내가 가정한 수와 비교해주면서 최신화해준다. 이때, 최댓값만 최신화하는 것이 아니라 몇 번째 수인 지도 같이 최신화해주면 된다. JAVA..

[JAVA / 자바] 백준 10818번 - 최소, 최대

문제 N개의 정수가 주어진다. 이때, 최솟값과 최댓값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다. 출력 첫째 줄에 주어진 정수 N개의 최솟값과 최댓값을 공백으로 구분해 출력한다. 문제 접근 방법 첫 번째 입력되는 숫자를 최댓값 혹은 최솟값이라 가정하고 이후 입력되는 숫자를 비교하여 내가 처음 가정한 숫자보다 더 크면 최댓값을 바꿔주고 더 작으면 최솟값을 바꿔주면서 마지막 숫자까지 비교를 마치면 그때의 최댓값과 최솟값을 출력해주면 되는 문제이다. 1. if문 사용 2. Math클래스 함수 사..

[자료구조] 소프트웨어와 자료구조

소프트웨어의 생명주기 (요구 분석 > 시스템 명세 > 설계 > 구현 > 테스트 > 유지 보수) 소프트웨어를 체계적으로 개발하고 관리하기 위해 개발 과정을 단계별로 나누어 구분한 것. 자료 추상화(Data Abstraction) 처리할 자료, 연산, 자료형에 대한 추상화 표현 자료: 프로그램의 처리 대상이 되는 모든 것을 의미 연산: 어떤 일을 처리하는 과정. (연산자에 의해 수행) 자료형: 처리할 자료의 집합과 자료에 대해 수행할 연산자의 집합 ex) 자료: 정수의 집합 추상 자료형(ADT, Abstract Data Type) 자료와 연산자의 특성을 논리적으로 추상화하여 정의한 자료형 자료 연산 추상화 추상 자료형 알고리즘 정의 구체화 자료형 프로그램 구현 알고리즘 입력(input): 알고리즘 수행에 필..

자료구조 2021.12.05
728x90
반응형