Java 코딩테스트 공부/Java 알고리즘 공부

#1 String(문자열) - 6번 & String과 StringBuilder 수행시간 측정

2022. 5. 29. 23:51
목차
  1. 진행 상황
  2. String과 StringBuilder의 수행 속도 차이

 

진행 상황

 

 

#1 String (문자열)

 

1. 문자 찾기
2. 대소문자 변환
3. 문장 속 단어(indexOf(), substring())
4. 단어 뒤집기(StringBuilder이용법 또는 직접뒤집기)
5. 특정 문자 뒤집기(toCharArray())
6. 중복문자제거
7. 회문문자열
8. 팰린드롬(replaceAll 정규식이용)
9. 숫자만 추출
10. 문자거리
11. 문자열 압축
12. 암호(replace(), parseInt(string, 2))

 

 

 

 

중복문자제거

 

 

문제

 

소문자로 된 하나의 문자열을 입력받으면 중복 문자 제거하고 출력한다. 순서 유지한다.

예시) ksekkset -> kset

 

 

풀이

 

indexOf() 는 특정 문자나 문자열이 앞에서부터 처음 발견되는 인덱스를 반환하며
만약 찾지 못했을 경우 -1을 반환한다.

이를 이용해서 문제를 해결할 수 있다.

그런데 문제는 너무 간단해서 볼 게 없고

 

문득 궁금증이 생겼다.

이런 짧은 String 처리에도 String과 StringBuilder의 속도 차이가 많이 날까?

강의와 상관없이 이번 글에선 해당 주제를 다루기로 했다.

직접 수행 시간을 측정해 캡쳐해서 비교해보겠다.

 

 

 

String과 StringBuilder의 수행 속도 차이

 

long start = System.nanoTime();

// 수행 시간을 측정할 소스 코드

long end = System.nanoTime();
System.out.println("수행시간: " + (end - start) + " ns");

이 방법으로 내 소스 코드의 수행시간을 확인할 수 있다.

이걸 이용해서 String과 StringBuilder의 실행 시간 차이를 확인해보자

 

 

 

String의 수행 시간

 

 

 

StringBuilder의 수행 시간(StringBuilder로 받고 String으로 리턴)

 

StringBuilder의 수행 시간(StringBuilder 타입 함수로 받고 그대로 리턴)

 

속도 차이가 많이 나는 것을 확인할 수 있다.

강의에서는 String을 썼지만 앞으로 나는 StringBuilder를 써야겠다.

 

 

 

 

 

학습자료 : https://www.inflearn.com/course/%EC%9E%90%EB%B0%94-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EB%AC%B8%EC%A0%9C%ED%92%80%EC%9D%B4-%EC%BD%94%ED%85%8C%EB%8C%80%EB%B9%84

 

자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비 - 인프런 | 강의

자바(Java)로 코딩테스트를 준비하시는 분을 위한 강좌입니다. 코딩테스트에서 가장 많이 출제되는 Top 10 Topic을 다루고 있습니다. 주제와 연동하여 기초문제부터 중급문제까지 단계적으로 구성

www.inflearn.com

 

 

'Java 코딩테스트 공부 > Java 알고리즘 공부' 카테고리의 다른 글

Java의 입력 클래스와 출력 클래스  (0) 2022.06.01
#1 String(문자열) - 7,8,9번 문제  (0) 2022.05.31
#1 String(문자열) - 4,5번 문제  (0) 2022.05.28
#1 String(문자열) - 2,3번 문제  (0) 2022.05.27
#1 String(문자열) - 1. 문자 찾기  (0) 2022.05.26
  1. 진행 상황
  2. String과 StringBuilder의 수행 속도 차이
'Java 코딩테스트 공부/Java 알고리즘 공부' 카테고리의 다른 글
  • Java의 입력 클래스와 출력 클래스
  • #1 String(문자열) - 7,8,9번 문제
  • #1 String(문자열) - 4,5번 문제
  • #1 String(문자열) - 2,3번 문제
daramG
daramG
dotori Java
daramG
다람쥐의 개발 블로그
daramG
전체
오늘
어제
  • 분류 전체보기 (193)
    • Java 코딩테스트 공부 (67)
      • Java 알고리즘 공부 (37)
      • Java 백준 문제풀이 (27)
      • Java 코테 나만의 팁 (3)
    • SQL Study (0)
      • Programmers SQL 문제풀이 (0)
      • SQLP 준비 (0)
    • 웹 개발 지식 정리 (0)
      • Servlet (0)
      • Java 정리 (0)
    • 자바 스프링 (45)
      • 스프링 공부 (4)
      • 스프링 게시판 프로젝트 (6)
      • 부트 블로그 JPA 프로젝트 (30)
      • react & springboot (5)
      • 스프링 오류창고 (0)
      • 리액트 + 스프링 프로젝트 (0)
      • pf (0)
      • pfError (0)
    • React (6)
      • React 정리 (3)
      • React 오류 창고 (3)
    • C++ 코딩테스트 공부 (중단) (20)
      • c++ 백준 문제풀이 (15)
      • c++ 알고리즘 공부 (5)
    • Unity (3)
      • Unity 공부 (3)
    • WebRTC (2)
      • WebRTC 강의학습 정리 (0)
      • WebRTC 프로젝트 (1)
    • 김영한님의 스프링 강의 학습 (10)
      • 스프링 강의 목차 (1)
      • 인텔리제이 & 스프링 기초 (1)
      • 스프링 핵심 원리 (8)
    • 전공 지식 정리 (40)
      • interview (0)
      • Java (0)
      • 운영체제 (4)
      • 데이터베이스 설계 (10)
      • 소프트웨어 공학 (3)
      • 유닉스 (14)
      • 디지털 논리회로 (0)
      • 인공지능 (7)
      • js (0)
      • etc (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 운영체제
  • C++ 알고리즘
  • Java 백준 문제풀이
  • 인공지능
  • 스프링부트 블로그 프로젝트
  • 노마드코더의 zoom클론코딩
  • java
  • Java 코테 나만의 팁
  • React&Spring 강의수강
  • 백준 c++
  • java 알고리즘
  • 김영한 스프링 입문
  • 스프링 프로젝트
  • 유닉스
  • 디지털 논리회로
  • 김영한 스프링 강의
  • 스프링 공부
  • Unity 공부
  • 스프링부트 프로젝트
  • 데이터베이스 설계
  • 부트 jpa 게시판 프로젝트
  • 김영한의 스프링 핵심 원리
  • 코테 알고리즘
  • 무서운 이야기

최근 댓글

최근 글

hELLO · Designed By 정상우.
daramG
#1 String(문자열) - 6번 & String과 StringBuilder 수행시간 측정
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.