본문 바로가기

전체 글90

[java] 입력받는 방법 2가지 Java가 사용자로부터 입력받는 방법으로 크게 2가지가 있다 1. Scanner Scanner는 자료형이 자동으로 정해지기 때문에 입력받을 때 따로 형 변환을 할 필요가 없다. 공백과 줄바꿈을 모두 경계로 인식해서 입력을 받을 때 매우 용이하다. 이러한 편리함 때문에 대부분 입력을 받을 때 Scanner를 이용한다. Scanner 클래스를 사용하기 위해서는 import가 필요하다. Scanner 객체의 인자로는 System.in이 필요하다. System.in은 InputStream의 객체이다. 이때, InputStream은 콘솔 입력을 뜻한다. import java.util.Scanner Scanner sc = new Scanner(System.in); // 콘솔입력 2. BufferedReader 편리.. 2023. 2. 10.
[Git] 원격 저장소(깃허브) 커밋 되돌리기 원격 저장소에 push하기 전 로컬 저장소에서 커밋을 되돌리고 싶은 경우에는 간단히 아래의 명령어로 돌아갈 수 있다. git reset {commit_id} 하지만, 이미 원격저장소(깃허브)에 push한 경우에는 로컬에서 커밋을 되돌린 후 강제로 깃허브에 push 해야한다. 1. 로컬에서 되돌아가고 싶은 커밋으로 이동 git reset {commit_id} # commit_id로 돌아감 git reset --hard HEAD^ # 바로 이전 커밋으로 돌아감 2. 되돌아가고 싶은 커밋으로 이동 후 원격 저장소에 강제 push git push -f origin main #git push -f {원격저장소별칭} {원격저장소브랜치} 참조: https://computer-science-student.tistory.. 2023. 2. 4.
[java] 문장 속 단어 설명 한 개의 문장이 주어지면 그 문장 속에서 가장 긴 단어를 출력하는 프로그램을 작성하세요. 문장속의 각 단어는 공백으로 구분됩니다. 입력 첫 줄에 길이가 100을 넘지 않는 한 개의 문장이 주어집니다. 문장은 영어 알파벳으로만 구성되어 있습니다. 출력 첫 줄에 가장 긴 단어를 출력한다. 가장 길이가 긴 단어가 여러개일 경우 문장속에서 가장 앞쪽에 위치한 단어를 답으로 합니다. 예시 입력 1 it is time to study 예시 출력 1 study package inflearn; import java.util.Scanner; public class Str3 { public static void main(String[] args) { Scanner scanner = new Scanner(System... 2023. 2. 4.
[java] next(), nextLine() 차이점 한 개의 문장을 입력 받아 그 속에 가장 긴 단어를 출력하는 코딩테스트 문제를 풀던 중 알고리즘 적으론 문제가 없는데 계속해서 제출하면 오류가 났다. 그 오류의 원인은 문장을 Scanner로 입력받는 곳이었다. 바로, Scanner의 입력을 next()로 받아서 발생한 문제였다. nextLine()으로 고치니깐 문제는 바로 해결되었다. 항상 헷갈리던 이론이라 이 김에 확실하게 정리하고 넘어가려 한다. next(), nextLine() 공통점 String 타입으로 반환한다. Scanner 클래스의 메소드 next(), nextLine() 차이점 nextLine()은 Enter(개행문자)를 치기 전까지 쓴 문자열을 모두 반환한다. 한 줄 단위로 입력을 받기에 \n도 포함한다. 분리자 개행문자 \n이 버퍼에 .. 2023. 2. 3.
[졸업작품] spring boot로 작업한 뭉키를 다시 돌아보며 (1) 선배가 작성한 pull request 받은 부분을 다시 확인하며 내가 프로젝트 과정에서 놓친 부분들을 다시 돌아보기로 하였다. 1. Iterator를 사용하여 비효율적으로 반복하는 부분을 stream으로 개선 일단 stream이란 java 8부터 추가된 컬렉션, 배열의 저장 요소를 하나씩 참조하여 람다식(함수 스타일)으로 처리할 수 있도록 도와주는 반복자이다. java 7까지는 Iterator 반복자를 통해 컬렉션 요소를 순차적으로 처리하였다. stream을 통해 컬렉션 요소를 순차적으로 처리함으로써 람다식으로 요소 처리 코드를 제공, 내부 반복자를 사용함에따라 병렬 처리가 쉬움, 중간처리와 최종처리의 파이프라인 작업을 수행한다는 장점을 얻을 수 있다. Stream API의 특징 - 원본 데이터를 변경X.. 2023. 2. 2.
[인프런] 스프링부트 개념정리(이론) - 1 해당 내용은 https://inf.run/xFxo 를 참고하여 작성되었습니다. 2편은 velog에 정리 했습니다. https://velog.io/@pnk7038/Inflearn%EC%9D%B8%ED%94%84%EB%9F%B0-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8-%EA%B0%9C%EB%85%90%EC%A0%95%EB%A6%AC%EC%9D%B4%EB%A1%A0- [Inflearn|인프런] 스프링부트 개념정리(이론) - 2 1편은 https://bestsu.tistory.com/m/60왜 벨로그에 쓰냐구..? 티스토리 복구가 아직도 안됐거든 😉 쓰다보니 벨로그가 더 좋은 것 같기도 .. ?톰캣을 설치할 필요없이 바로 실행이 가능하다.운영체제가 velog.io 스프.. 2022. 10. 5.
[java] 코딩테스트 문법 정리 Long 타입 to int 타입=> intValue 메서드 사용 Long x = 11L; int i = x.intValue(); substring 메소드 : 문자열에서 원하는 부분을 추출 할 때 사용 기본구조 문자열.substring(문자열 시작 번호, 문자열 끝낼 번호) 단, 끝나는 범위의 수는 포함되지 않는다. 즉 1번째에서 3번째까지 읽어들이고 싶다면 substring(1,4)로 해줘야 3번째까지 읽어들임. String str = "abcd"; System.out.println(str.substring(1,2)); // 결과: bc * 그 외에 문자열을 다루는 java 메서드 charAt, indexOf 참고: http://www.dreamy.pe.kr/zbxe/CodeClip/3766960 JAV.. 2022. 8. 31.
[프로그래머스|최대공약수와 최소공배수] 유클리드 호제법 본인 풀이 class Solution { public int[] solution(int n, int m) { int[] answer = new int[2]; answer[0] = getGCD(n,m); answer[1] = (n * m) / (answer[0]); return answer; } public static int getGCD(int n, int m){ if(n % m == 0){ return m; } return getGCD(m,(n%m)); } } 풀이법 유클리드 호제법 2개 수의 최대 공약수를 구하는 알고리즘 자연수 a, b에 대해서 a%b의 결과를 r이라고 한다면 a, b의 최대공약수와 b, r의 최대공약수는 같다. 이 성질을 이용하여 a, b를 나눈 나머지 r을 구하고 b, r을 나눈.. 2022. 8. 31.
[프로그래머스|숫자 문자열과 영단어] replaceAll 함수 나의 해설 import java.util.*; class Solution { public int solution(String s) { int answer = 0; String[] words = {"zero","one","two","three","four","five","six","seven","eight","nine"}; int[] integers = {0,1,2,3,4,5,6,7,8,9}; StringBuffer sb = new StringBuffer(); ArrayList temp = new ArrayList(); // answer로 바꿀 list String[] s_array = s.split(""); for(String string : s_array){ try{ int k = Integer.par.. 2022. 8. 29.