분류 전체보기88 [CS] Java 8 Stream 스터디에서 [알고리즘 + CS 스터디]를 진행하고 있다. 해당 스터디를 진행하면서 CS 관련 주제를 하나씩 정해서 학습한다. 스터디에서 정한 주제를 매 주 정리해보려고 한다. 오늘은 Stream에 대해서 정리를 한다. 목차 Stream이란? Stream의 3단계 구조(생성 -> 중간 연산 -> 최종 연산) Stream의 특징 Stream의 장단점 Stream을 사용하면 성능은 좋은가? Stream이란? 스트림은 데이터 처리 연산을 지원하도록 소스에서 추출된 연속된 값 요소 스트림은 컬렉션 반복을 멋지게 처리하는 기능 - 모던 자바 인 액션 스트림은 컬렉션의 요소를 하나씩 참조해 람다식으로 처리할 수 있는 반복자 - 이것이 자바다 다양한 데이터 소스를 표준화된 방법으로 다루기 위한 것 - 자바의 정석 유명.. 2022. 7. 9. [Java][PGS][Level2] 오픈채팅방 오늘은 오랜만에 프로그래머스의 오픈채팅방 문제의 후기를 남겨본다. 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 문제는 너무 길어서 위의 링크로 접근해주시면 됩니다! 입력 제한사항 record는 다음과 같은 문자열이 담긴 배열이며, 길이는 1 이상 100,000 이하이다. 다음은 record에 담긴 문자열에 대한 설명이다. 모든 유저는 [유저 아이디]로 구분한다. [유저 아이디] 사용자가 [닉네임]으로 채팅방에 입장 - "Enter [유저 아이디] [닉네임]" (ex. "Enter uid1234 Muzi") [유저 아이디] 사용자가 채팅방에서 퇴장 .. 2022. 7. 7. [Java] 암호 설명 현수는 영희에게 알파벳 대문자로 구성된 비밀편지를 매일 컴퓨터를 이용해 보냅니다. 비밀편지는 현수와 영희가 서로 약속한 암호로 구성되어 있습니다. 비밀편지는 알파벳 한 문자마다 # 또는 *이 일곱 개로 구성되어 있습니다. 만약 현수가 “#*****#”으로 구성된 문자를 보냈다면 영희는 현수와 약속한 규칙대로 다음과 같이 해석합니다. 1. “#*****#”를 일곱자리의 이진수로 바꿉니다. #은 이진수의 1로, *이진수의 0으로 변환합니다. 결과는 “1000001”로 변환됩니다. 2. 바뀐 2진수를 10진수화 합니다. “1000001”을 10진수화 하면 65가 됩니다. 3. 아스키 번호가 65문자로 변환합니다. 즉 아스크번호 65는 대문자 'A'입니다. 참고로 대문자들의 아스키 번호는 'A'는 65번,.. 2022. 6. 19. [Java] 문자열 압축 설명 알파벳 대문자로 이루어진 문자열을 입력받아 같은 문자가 연속으로 반복되는 경우 반복되는 문자 바로 오른쪽에 반복 횟수를 표기하는 방법으로 문자열을 압축하는 프로그램을 작성하시오. 단 반복횟수가 1인 경우 생략합니다. 입력 첫 줄에 문자열이 주어진다. 문자열의 길이는 100을 넘지 않는다. 출력 첫 줄에 압축된 문자열을 출력한다. 예시 입력 1 KKHSSSSSSSE 예시 출력 1 K2HS7E 예시 입력 2 KSTTTSEEKFKKKDJJGG 예시 출력 2 KST3SE2KFK3DJ2G2 첫 번째 풀이 문제 접근은 문자열을 압축할려면 같은 문자가 연속적으로 몇 번 반복되는지 체크를 하기 위해서 현재 문자와 다음 문자가 같다면 equalCount++ 를 증감해줬다. equalCount를 1로 할당한 이유는 .. 2022. 6. 19. [Java] 가장 짧은 문자거리 설명 한 개의 문자열 s와 문자 t가 주어지면 문자열 s의 각 문자가 문자 t와 떨어진 최소거리를 출력하는 프로그램을 작성하세요. 입력 첫 번째 줄에 문자열 s와 문자 t가 주어진다. 문자열과 문자는 소문자로만 주어집니다. 문자열의 길이는 100을 넘지 않는다. 출력 첫 번째 줄에 각 문자열 s의 각 문자가 문자 t와 떨어진 거리를 순서대로 출력한다. 예시 입력 1 teachermode e 예시 출력 1 1 0 1 2 1 0 1 2 2 1 0 풀이 해당 문제는 문자열 word에 각 문자가 문자 target과 떨어진 최소 거리를 구하는 문제이다. 먼저, 왼쪽에서 오른쪽으로 최소 거리를 구했다. 현재 문자와 타켓이 같지 않으면 position++을 증감해주고, 같으면 떨어진 최소 거리는 0이기에 갱신했다. .. 2022. 6. 19. [Java] 숫자만 추출 설명 문자와 숫자가 섞여있는 문자열이 주어지면 그 중 숫자만 추출하여 그 순서대로 자연수를 만듭니다. 만약 “tge0a1h205er”에서 숫자만 추출하면 0, 1, 2, 0, 5이고 이것을 자연수를 만들면 1205이 됩니다. 추출하여 만들어지는 자연수는 100,000,000을 넘지 않습니다. 입력 첫 줄에 숫자가 섞인 문자열이 주어집니다. 문자열의 길이는 100을 넘지 않습니다. 출력 첫 줄에 자연수를 출력합니다. 예시 입력 1 g0en2T0s8eSoft 예시 출력 1 208 replaceAll()과 Integer.parseInt()를 이용한 방법 replaceAll()에서는 [^0-9] 0~9가 아닌 문자는 모두 공백("")으로 치환시켜서 제거했다. g0en2T0s8eSoft 문자열에서 숫자만 추출을 .. 2022. 6. 15. 이전 1 2 3 4 5 6 7 8 ··· 15 다음