[알고리즘문제풀기] 문자열 돌리기

silver's avatar
Apr 05, 2025
[알고리즘문제풀기] 문자열 돌리기

문제

내가 작성한 정답

char

import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String a = sc.next(); for(char c : a.toCharArray()){ System.out.println(c); } } }

charAt

import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String a = sc.next(); for(int i=0; i<a.length(); i++){ System.out.println(a.charAt(i)); } } }

String

import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String a = sc.next(); String[] aa = a.split(""); for(String s : aa){ System.out.println(s); } } }

다른 사람들의 정답

forEach - String

import java.util.*; import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String a = sc.next(); Arrays.stream(a.split("")).forEach(System.out::println); } }

forEach - char

import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String a = sc.next(); // a.chars()는 IntStream을 반환하기 때문에 (char)로 변환하지 않으면 숫자로 출력된다 a.chars().forEach(c->System.out.println((char)c)); //그래서 이렇게 해도 됨 a.chars().mapToObj(i->(char)i).forEach(System.out::println); } }
💡

forEach

  1. 반복 작업 수행: 컬렉션 또는 스트림의 각 요소에 대해 주어진 작업을 한 번씩 실행
  1. 순차적 처리: 요소들을 순서대로 처리 (스트림의 경우 병렬 스트림이 아니라면).
  1. 사이드 이펙트 중심: forEach는 주로 컬렉션 또는 스트림의 요소를 변경하거나, 외부 상태를 변경하는 등의 사이드 이펙트를 발생시키는 데 사용. 값을 반환하거나 새로운 컬렉션을 생성하는 데는 적합하지 않다.
 
  1. 인수: : forEach 메서드는 java.util.function.Consumer 인터페이스를 구현한 함수형 인터페이스를 인수로 받는다. Consumer는 한 개의 입력을 받아서 아무 값도 반환하지 않는 함수를 나타낸다.
  1. 반환 값 : forEach 메서드는 아무 값도 반환하지 않는다 (void 타입).
  1. 종료 연산 : 스트림에서 forEach는 종료 연산(terminal operation)에 해당한다. 따라서 forEach가 호출되면 스트림 파이프라인이 실행되고 결과가 처리된다.
Share article

silver